《Cocos2D-x权威指南》——3.9 绘制图形

3.9 绘制图形

在节点类CCNode中,可以重写draw函数并在其中绘制图形,如tests项目中DrawPrimitivesTest文件夹下DrawPrimitivesTest.cpp文件中的DrawPrimitivesTest类中的draw函数。
1)绘制直线。
参数分别为直线的起点和终点。如代码清单3-44所示。
代码清单3-44 绘制直线

ccDrawLine( ccp(0, 0), ccp(s.width, s.height) );

默认绘制的直线是白色的、不透明的、线宽是1并且是抗锯齿的。设置这些绘制参数后,绘制直线如代码清单3-45所示。
代码清单3-45 设置绘制参数后绘制直线

glLineWidth( 5.0f );
ccDrawColor4B(255,0,0,255);
ccDrawLine( ccp(0, s.height), ccp(s.width, 0) );

这里需要说明的是,OpenGL中是状态机,除非重新设置,否则这些参数都会保持到下一个状态。
2)绘制点。
如代码清单3-46所示,注意OpenGL中的点是正方形的。
代码清单3-46 绘制点

CCPoint points[] = { ccp(60,60), ccp(70,70), ccp(60,70), ccp(70,60) };
ccPointSize(4);
ccDrawColor4B(0,255,255,255);
ccDrawPoints( points, 4);

3)画圆。
函数的参数为圆心、半径、角度、分段数(将圆微分为直线)和是否与中心连线,如代码清单3-47所示。
代码清单3-47 画圆

glLineWidth(2);
ccDrawColor4B(0, 255, 255, 255);
ccDrawCircle( ccp(s.width/2, s.height/2), 50,    CC_DEGREES_TO_RADIANS(90), 50, true);

4)画多边形。
函数的参数为点数组、点数量和图形是否封闭,如代码清单3-48所示。
代码清单3-48 画多边形

ccDrawColor4B(255, 0, 255, 255);
glLineWidth(2);
CCPoint vertices2[] = { ccp(30,130), ccp(30,230), ccp(50,200) };
ccDrawPoly( vertices2, 3, true);

5)画贝塞尔曲线。
函数的第一个参数为一个控制点,第二个和第三个参数为两个控制点,最后一个参数为分段数,如代码清单3-49所示。
代码清单3-49 画贝塞尔曲线

CHECK_GL_ERROR_DEBUG();

// draw quad bezier path
ccDrawQuadBezier(ccp(0,s.height), ccp(s.width/2,s.height/2), ccp(s.width,s.height), 50);

CHECK_GL_ERROR_DEBUG();

// draw cubic bezier path
ccDrawCubicBezier(ccp(s.width/2, s.height/2), ccp(s.width/2+30,s.height/2+50), ccp(s.width/2+60,s.height/2-50),ccp(s.width, s.height/2),100);

示例的运行效果如图3-36所示。

注意 Cocos2D-x提供的绘制图形函数里没有绘制实心圆形的函数。需要绘制实心圆形时,请将ccDrawCircle函数(在CCDrawingPrimitives.cpp文件中)调用glDrawArrays函数时的第一个参数由GL_LINE_STRP改为GL_TRIANGLE_FAN即可。

时间: 2024-10-24 09:19:26

《Cocos2D-x权威指南》——3.9 绘制图形的相关文章

Android开发权威指南(第2版)新书发布(免费下载随书光盘内容,包括Android源代码)

光盘内容下载 光盘内容下载(新浪微盘) Android4.2.2(CM ROM)源代码下载 如果需要虚拟环境的,这里提供了ubuntu10.04 LTS版本,不需要CPU支持虚拟化(VirtualBox版[VirtualBox-4.2.10-84105]) Ubuntu10.04 VirtualBox版 分卷1 分卷2 分卷3 分卷4 分卷5 分卷6   用户名:root 秘密:12345678   <Android开发权威指南(第二版)>是畅销书<Android开发权威指南>的升

《Windows 8 权威指南》——1.5 版本对比

1.5 版本对比 Windows 8 权威指南 当今电脑操作系统有许多的分支,总而言之分为三部分.其一是微软代表的Windows系统家族:其二是UNIX以及其分支Linux:其三就是苹果的Mac Os.本章我们主要对比一下Windows的几个版本之间的差别以及与Linux版本中最具代表性的Ubuntu的差别. 1.5.1 Ubuntu 12.04与Windows 8的对比 Ubuntu是目前最流行的Linux操作系统之一,最新的版本更新到了12.04.本节我们从以下几个方面来对比一下Window

《Cocos2D-x权威指南》——导读

前言 为什么要写这本书 在大学期间,我开始对移动游戏开发感兴趣,于是开始学习移动开发方面的相关知识,包括J2ME和Android等技术.现在,开始的好奇心和兴趣成就了我引以为豪的事业.在大四的时候,我到了天津猛犸实习,从J2ME平台到Android平台,从Android平台到iOS平台,我不仅接触了不同平台的开发,更学会了游戏开发的技巧和思想.如果说编程是一门艺术,那么游戏开发就是艺术中的艺术.作为一名游戏开发程序员,不仅要拥有熟练的编程技巧,还要对美术.策划和游戏有深入的理解.游戏程序员最重要

《Windows 8 权威指南》——2.10 几招解决Windows 8 Metro应用打不开的问题

2.10 几招解决Windows 8 Metro应用打不开的问题 Windows 8 权威指南Windows 8带给我们最大的改变就是Metro应用的使用.作为第一款采用Metro界面的操作系统定然会出现或多或少的应用问题.这里有一些小技巧能帮助用户解决Metro应用程序出现的小问题.首先我们分析一下使Metro应用出现打不开的几个因素,从原因出发或许我们会更加容易解决问题. Metro应用是一种需要图形支持的应用界面,所以我们首先应该查看显卡的驱动程序是否安装.显示器不可能采用同一种比例和分辨

【UWP通用应用开发】编辑文本、绘制图形、3D透视效果及绘制时钟实战

编辑文本及键盘输入 相信大家都会使用TextBox,但如果要让文本在TextBox中换行该怎么做呢?将TextWrapping属性设置为Wrap,将AcceptsReturn属性设置为True就好咯. PasswordBox很明显就是一个密码框了,和其他的控件相比其有2个特殊之处,一个是其可以用MaxLength来控制最大的长度,一个是用PasswordChanged来捕捉密码的改名.显然比如QQ密码的MaxLength就是16位了,而PasswordChanged可以用来监测比如用户设置的密码

paint-怎么在网页上绘制图形

问题描述 怎么在网页上绘制图形 老师要求根据一个json文件在网页里面绘制出地图,类似于Echart的底图,也就是Echart下面的那层地图的效果?简单一点也可以说是怎么在网页里面画东西?请问我应该学习那些知识?本人是学生,没有悬赏,希望大家能帮帮忙?谢谢 解决方案 amCharts在网页上绘制各种图形[转]c# 绘制图形 解决方案二: canvas drawImage 解决方案三: 用html5的canvas,很方便 解决方案四: js,canvas,svg,vml(ie专用)等 解决方案五:

经典的《JavaScript 权威指南》中的“对象”不经典

javascript|对象 这些天在为Qomo项目写"JavaScript面向对象的支持"这组文章.也一直在期待网上购得的那本<JavaScript 权威指南>(第四版)快快到来. 在前公司,有这本书的第二或第三版,也一直将这本书视为经典.但那时并没有深入的去看它前几章的概念性叙述,而是把它当成一本手册来查.现在却刻意地关注了,因为Qomo的底层是以纯理论的OOP为基础的. 今天这本书终于寄到了,但是一读之下,大失所望.不知道作者对JavaScript语言的理解能力不够,还

Struts2权威指南

Struts2权威指南里介绍,并结合笔者在此之前也用过webwork和struts1,不过还是对webwork更熟一 些,好在struts2比较接近webwork,所以学习成本相对不高,struts2的好处就不说了,说说差异吧. 1.相对struts1而言,没有了formbean,表单代码不需要一定要使用struts提供的html标签,一般的 html表单标签照样可以使用,耦合度学习成本都低了很多.想想struts1,不用它自身提供的html标签, 表单元素就不能注入,除action外,还得另外

PPT动画教程:绘制图形

今天我们用动画的形式介绍绘制图形的方法和技巧. 根据演示文稿的需要,经常要在其中绘制一些图形,利用其中的"绘图"工具栏,即可搞定. 1.执行"视图→工具栏→绘图"命令,展开"绘图"工具栏. 2.点击工具栏上的"自选图形"按钮,在随后展开的快捷菜单中,选择相应的选项(如"基本形状.太阳形"),然后在幻灯片中拖拉一下,即可绘制出相应的图形. 注意:①如果选择"自选图形.线条"下面的选项,可以