cocos2dx[3.2](17)——简单绘图DrawNode

  

<强>

,,,,绘图的方式有两种:

,,,,在使用OpenGL的绘图原语<强>。

,,,,在使用<强>。

,,,,曾经在使用2. x版本的时候,学习过使用DrawPrimitives进行简单图形的绘制。

,,,, OpenGL绘图原语DrawPrimitives, http://shahdza.blog.51cto.com/2410787/1545462

,,,,在本节中将学习使用来进行图形的绘制。


<强>

,,,, http://blog.csdn.net/ac_huang/article/details/39522473

,,,, http://blog.csdn.net/conmajia/article/details/8543834 (贝塞尔曲线的原理)


<强>

,,,,:即绘制曲线一般都是通过绘制”样条曲线”来实现,而分段数即样条段数。

,,:起点终点之间的一条抛物线,利用一个控制点来控制抛物线的形状。

,,:起点终点之间,利用两个控制点来控制曲线的形状。


<强>

,,,:添加了和一样的功能,。

,,,, http://shahdza.blog.51cto.com/2410787/1545462




<人力资源/>


<强>

,,,,由于在一个单独的批处理中绘制了所以元素,因此它绘制点,线段,多边形都要比“画原语”快。

,,比;使用DrawPrimitives绘图原语绘制的图形,可以是实心的,也可以是空心的。

,,,,在使用DrawNode绘制的图形。


<强>

,,,,创建一个DrawNode,然后加入到层布景层中,即可绘制各种形状的图形。

,,,,

////创建DrawNode,然后后加入到层的层中   时间=DrawNode *, drawNode  DrawNode:创建();   这→addChild (drawNode);//就夹位嬷啤?/


<强>

,,,,使用DrawNode来绘制图形,可以绘制如下几个图形。

,,,,祝辞,:

,,,,祝辞,:

,,,,在:

,,,,祝辞,:

,,,,在:

,,,,在:

,,,,

,,,,

////圆点,,,,,,(的位置”,,,“圆点半径”,,,“填充颜色的)   void  drawDot (const  Vec2 和pos, float 半径,,const  Color4F 及颜色);//线段,,,,,,,,,,(“起点”,,,“终点”,,,“半线宽”,,,“填充颜色的)   void  drawSegment (const  Vec2 ,,, const  Vec2 ,,, float 半径,,const  Color4F 及颜色);//三角形,,,,,,,,,(“顶点1 ',,,顶的点2“,,,”顶点3 ',,,“填充颜色的)   void  drawTriangle (const  Vec2 , p1, const  Vec2 , p2,, const  Vec2 和p3,, const  Color4F 及颜色);//多边形,,,,,,,,(“顶点数组”,,,“顶点个数”,,,“填充颜色”,,,“轮廓粗细”,,,“轮廓颜色的)   void  drawPolygon (Vec2  *绿党,int 统计,,const  Color4F , fillColor,, float  borderWidth,, const  Color4F , borderColor);//二次贝塞尔图形,,,,,,,,(“起点”,,,“控制点”,,,“终点”,,,“分段数”,,,“填充颜色的)   void  drawQuadraticBezier (const  Vec2&,,, const  Vec2&,控制,const  Vec2&,,, unsigned  int 段,,const  Color4F 及颜色);//三次贝塞尔图形,,,,(“起点”,,,“控制点1 ',,,的控制点2“,,,”终点”,,,“分段数”,,,“填充颜色的)   void  drawCubicBezier (const  Vec2&,,, const  Vec2&, control1,, const  Vec2&, control2,, const  Vec2&,,, unsigned  int 段,,const  Color4F 及颜色);//


<强>

,,,,使用,来清除之前使用drawNode画的所有图形。

//drawNode→clear ();//


<强>

,,使用,设置颜色混合的方式。

,,,, http://shahdza.blog.51cto.com/2410787/1547633

//BlendFunc  bl =, {GL_ONE的不同之处是,GL_ONE };   drawNode→setBlendFunc(提单);//


<强>

,,,,使用DrawNode绘制的图形都是实心的,那么的怎么绘制呢?

,,,,从绘制图形的函数可以看出:图形绘制的同时,需要设置图形的颜色,其中也包含了透明度的设置,所以只要控制图形内部的填充颜色Color4F的透明度为,即可绘制出一个空心的图形来。

,,,,而能达到这种效果的,就只有多边形的绘制:。

 cocos2dx[3.2](17)——简单绘图DrawNode

,,,,

,,,,,祝辞,Color4F(1, 0, 0, 0):红色

,,,,,,,,祝辞,Color4F(1 0 0,1):红色

//Vec2 点[4];   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

cocos2dx[3.2](17)——简单绘图DrawNode