您的位置:首页 >> Cocos2d-x >> 和屌丝一起学cocos2dx-draw绘制

和屌丝一起学cocos2dx-draw绘制

[ 孤狼 | 2015-02-09 17:14:23 | Cocos2d-x | 2497°C | 0条评论 ]
声 明

本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。
gl.paea.cn版权所有。


       Hello,欢迎回到“和屌丝一起学cocos2dx”系列教程。上节我们说到“获取设备语言”,很简单吧,相信大家都已经学会了,嘿嘿。这节呢,我们就开始来学个好玩的,draw绘制,小时候大家都画过简笔画吧,draw绘制会让你找回童年的记忆哦(可惜找不回童年的妹子)。好了我们开始学习吧。

【一】:函数


       //1.设置绘制颜色

1.ccDrawColor4B("红","绿","蓝","透明");

       //2.设置绘制线宽

2.glLineWidth(线条宽度);

       //3.绘制一条直线

3.ccDrawLine("起点坐标","终点坐标");

       //4.设置点的大小

4.ccPointSize("半径");

       //5.绘制一个点

5.[1]ccDrawPoint("点的坐标");

5.[2]ccDrawPoints("点的坐标数组","数量");

       //6.绘制一个圆形

6.[1]ccDrawCircle("中心点坐标","半径f","角度f","分段数","显示半径","X轴放大倍数f","Y轴放大倍数f");

6.[2]ccDrawCircle("中心点坐标","半径f","角度f","分段数","显示半径");

       //7.绘制空心多边形

7.ccDrawPoly("顶点数组","点数量","是否自动封闭");

       //8.绘制实心多边形

8.ccDrawSolidPoly("顶点数组","点数量","颜色4F");

       //9.绘制填充矩形

9.ccDrawSolidRect("对角顶点1","对角顶点2","颜色4F");

       //10.绘制空心矩形

10.ccDrawRect("对角顶点1","对角顶点2");

       //11.绘制平面贝赛尔曲线

11.ccDrawQuadBezier("起始点","控制点","结束点","分段数");

       //12.绘制立体贝赛尔曲线

12.ccDrawCubicBezier("起始点","控制点1","控制点2","结束点","分段数");


颜色:

ccDrawColor4B("红f","绿f","蓝f","透明f");//红、绿、蓝、透明、满值均为255

ccDrawColor4F("红f","绿f","蓝f","透明f");//红、绿、蓝、满值均为255,透明满值为1


【二】:示例


1.老规矩,先开始新建个项目命名Drawdemo

2.疯狂编码:


Drawdemo.h


1.重写draw函数

virtual void draw();



Drawdemo.cpp

       这里注意,一定要保留背景,否则透明度没法体现,即使设置为0也不透明。


实现draw函数


void Drawdemo::draw(){

   //-new-//

   CCSize mysize=CCDirector::sharedDirector()->getWinSize();

   //画个猥琐的直线

   ccDrawColor4B(255,255,255,130);

   glLineWidth(3);

   ccDrawLine(ccp(100,200),ccp(mysize.width-100,200));

   //再画个可爱的圈圈

   ccDrawColor4B(255,255,100,190);

   glLineWidth(3);

   ccDrawCircle(ccp(mysize.width/2,mysize.height/2),100,0,360,1,2,1);

   //再来画个点

   ccDrawColor4B(255,25,200,250);

   glLineWidth(3);

   ccPointSize(10);

   ccDrawPoint(ccp(mysize.width/2,mysize.height/2));

   //再来画个空心矩形

   ccDrawColor4B(24,25,200,140);

   glLineWidth(3);

   ccDrawRect(ccp(100,100),ccp(300,200));

   //再来个实心的

   ccDrawSolidRect(ccp(110,210),ccp(310,110),ccc4f(255,255,255,0.5f));

   //再来画个空心多边形

   ccDrawColor4B(240,225,100,130);

   glLineWidth(3);

   CCPoint Polyarray[]={ccp(20,100),ccp(50,40),ccp(250,420),ccp(510,450),ccp(210,140)};

   ccDrawPoly(Polyarray,5,1);

   //再来个实心的多边形

   CCPoint Polyarray2[]={ccp(120,150),ccp(150,420),ccp(350,120),ccp(310,250),ccp(320,170)};

   ccDrawSolidPoly(Polyarray2,5,ccc4f(142,245,70,0.3f));

   //绘制平面贝赛尔曲线

   ccDrawColor4B(100,100,100,255);

   ccDrawQuadBezier(ccp(0,320),ccp(160,100),ccp(480,320),100);

   //绘制立体贝赛尔曲线

   ccDrawColor4B(200,200,200,255);

   ccDrawCubicBezier(ccp(0,0),ccp(160,300),ccp(320,20),ccp(480,320),100);

   //-new-//

}




       好了来看看我们的杰作吧。



       哈哈, 这幅后映像派画不久的将来一定会被收入国家博物馆的,我们拭目以待吧。


本节DEMO下载


转载请注明出处:http://gl.paea.cn/n.php?n=17
 
如您看得高兴,欢迎随意投喂,让我们坚持创作!
赞赏一个鸡腿
还没有人留下遗迹
综合 · 搜索