cocos2d-x 繪製圖形

來源:互聯網
上載者:User

轉載請註明出處: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();}


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.