在Cocos2d-x中,CCObject都重写了draw函数,我们如果想绘制一个基本类型的图形,可以在此类函数中实现。
- virtual void draw();
在源文件中实现draw函数:
- void HelloWorld::draw()
- {
- CCSize winSize = CCDirector::sharedDirector()->getWinSize();
- // 设置颜色
- ccDrawColor4B(230,200,100,100);
- // 设置线的宽度
- glLineWidth(2);
- // 绘制一条直线
- ccDrawLine(CCPointMake(0,0),CCPointMake(winSize.width/2.0,winSize.height/2.0));
- //////////////////////////////////////////
- // 设置颜色
- ccDrawColor4B(255,255,0);
- // 设置像素尺寸
- ccPointSize(30);
- // 绘制一个点
- ccDrawPoint(CCPointMake(winSize.width/2.0,winSize.height/2.0));
- //////////////////////////////////////////
- // 设置颜色
- ccDrawColor4B(0,250,0);
- // 绘制圆形
- ccDrawCircle(CCPointMake(winSize.width/2.0,winSize.height/2.0),50,CC_DEGREES_TO_RADIANS(90),false);
- //////////////////////////////////////////
- // 设置颜色
- ccDrawColor4B(0,255);
- // 设置线的宽度
- glLineWidth(5);
- // 绘制多边形
- CCPoint vert[] = {ccp(70,150),ccp(150,200),ccp(190,300)};
- ccDrawPoly(vert,4,true);
- //////////////////////////////////////////
- // 设置颜色
- ccDrawColor4B(255,255);
- // 绘制填充的多边形
- CCPoint fill[] = {ccp(0,120),ccp(50,170),ccp(25,ccp(0,170)};
- ccDrawSolidPoly(fill,5,ccc4f(0.5f,0.5f,1,1));
- //////////////////////////////////////////
- // 绘制贝塞尔曲线
- ccDrawQuadBezier(ccp(0,winSize.height),ccp(winSize.width/2.0,ccp(winSize.width,50);
- //////////////////////////////////////////
- // 绘制立体的贝塞尔曲线
- ccDrawCubicBezier(ccp(winSize.width/2.0,ccp(winSize.width/2.0+30,winSize.height/2.0+50),ccp(winSize.width/2.0+60,winSize.height/2.0-50),100);
- //////////////////////////////////////////
- // 绘制填充矩形
- ccDrawSolidRect(ccp(240,50),ccp(300,10),ccc4f(255,177,255));
- }