轉載請註明出處:http://blog.csdn.net/oyangyufu/article/details/25841727
繪製圖形如下:
程式碼:
需要重新定義父類虛函數draw()
1、在HelloWorldScene.h標頭檔加入:
virtual void draw();
2、定義實現:
void HelloWorld::draw(){//add your code....CHECK_GL_ERROR_DEBUG();CCSize size = CCDirector::sharedDirector()->getVisibleSize();//線寬為1,藍色線,不透明//ccDrawLine參數1:繪製起點座標, 參數2:終點座標glLineWidth( 1.0f );ccDrawColor4B(0,0,255,0);ccDrawLine(ccp(0, 640,), ccp(960, 0) );CHECK_GL_ERROR_DEBUG();//線寬為5,紅色線,不透明//ccDrawLine參數1:繪製起點座標, 參數2:終點座標glLineWidth( 5.0f );ccDrawColor4B(255,0,0,255);ccDrawLine(ccp(0, 0,), ccp(960, 640) );CHECK_GL_ERROR_DEBUG();//設定OpenGL點的大小, 預設是正方形//ccDrawLine參數:繪製位置//ccPointSize(80);//ccDrawColor4B(0,0,255,128);//設定顏色//ccDrawPoint( ccp(size.width/2, size.height/2) );CHECK_GL_ERROR_DEBUG();// 畫4個點的正方形CCPoint points[] = { ccp(60,60), ccp(70,70), ccp(60,70), ccp(70,60) };//四個點位置ccPointSize(80);ccDrawColor4B(0,255,255,255);ccDrawPoints( points, 4);CHECK_GL_ERROR_DEBUG();//在屏中間畫一個由10段組成的圓, 與圓中心不連線//ccDrawCircle參數1:圓心位置;參數2:半徑;參數3:角度;參數4:分段數;參數5:是否與圓中心連線glLineWidth(16);//寬度ccDrawColor4B(0, 255, 0, 255);//顏色ccDrawCircle(ccp(size.width/2, size.height/2), 100, 0, 10, false);CHECK_GL_ERROR_DEBUG();// 在屏中間畫一個由50段組成的圓,與圓中心連線glLineWidth(2);ccDrawColor4B(0, 255, 255, 255);ccDrawCircle( ccp(size.width/2, size.height/2), 50, CC_DEGREES_TO_RADIANS(90), 50, true);CHECK_GL_ERROR_DEBUG();//畫點數為5的多邊形//ccDrawPoly參數1:點數組;參數2:點數;參數3:圖形是否閉合ccDrawColor4B(255, 255, 0, 255);glLineWidth(10);CCPoint vertices[] = { ccp(0,0), ccp(50,50), ccp(100,50), ccp(100,100), ccp(50,100) };ccDrawPoly( vertices, 5, false);CHECK_GL_ERROR_DEBUG();// 畫點數為5的閉合多邊形, 並填充顏色//ccDrawSolidPoly參數1:點數組;參數2:點數;參數3:填充顏色glLineWidth(1);CCPoint filledVertices[] = { ccp(0,120), ccp(50,120), ccp(50,170), ccp(25,200), ccp(0,170) };ccDrawSolidPoly(filledVertices, 5, ccc4f(0.5f, 0.5f, 1, 1 ) );// 畫三角形//ccDrawPoly參數1:點數組;參數2:點數;參數3:圖形是否閉合ccDrawColor4B(255, 0, 255, 255);glLineWidth(2);CCPoint vertices2[] = { ccp(130,230), ccp(130,330), ccp(150,300) };ccDrawPoly( vertices2, 3, true);CHECK_GL_ERROR_DEBUG();// 畫塞爾曲線//參數1:線起點位置;參數2:線中心點位置;參數3:線終點位置;參數4:線條段數ccDrawQuadBezier(ccp(0, 640-100),ccp(size.width/2, size.height/2-100),ccp(960, 640-100), 90);CHECK_GL_ERROR_DEBUG();//畫有4個控制點的塞爾曲線ccDrawCubicBezier(ccp(size.width/2, size.height/2), ccp(size.width/2+100, size.height/2+150), ccp(size.width/2+200, size.height/2-80),ccp(960, 300),100);CHECK_GL_ERROR_DEBUG();//畫黃色斜矩形CCPoint vertices3[] = {ccp(60,160), ccp(70,190), ccp(100,190), ccp(90,160)};ccDrawSolidPoly( vertices3, 4, ccc4f(1,1,0,1) );// 完成後重設一下繪製狀態glLineWidth(1);ccDrawColor4B(255,255,255,0);ccPointSize(1);CHECK_GL_ERROR_DEBUG();}