Cocos2d-x學習筆記(七)例項——繪製圖形
【關於draw函式】
在節點類CCNode中,可以重寫draw函式並在其中繪製圖形。Draw是一個虛擬函式,只要繼承CCNode的子類都可使用,只要在其函式內部新增繪圖操作即可在場景中顯示繪製的圖形。
【1】為了使繪製的圖形更清晰,將init()裡所有關於佈景的資源(精靈圖片、選單項、標籤等等)去掉
bool HelloWorld::init()
{
bool bRet = false;
do
{
//////////////////////////////////////////////////////////////////////////
// super init first
//////////////////////////////////////////////////////////////////////////
CC_BREAK_IF(! CCLayer::init());
bRet = true
} while (0);
return bRet;
}
【2】init()裡面什麼都沒有,這樣背景會變成黑色,怎樣改變視窗背景呢?
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
glClearColor(0,1,0,1);//設置視窗背景色
// create a scene. it's an autorelease object
CCScene *pScene = HelloWorld::scene();
// run
pDirector->runWithScene(pScene);
return true;
}
這裡要說一下關於glClearColor函式,這其實是一個OpenGL原始函式,系統預設值為glClearColor(0,0,0,0),函式原型為void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ),引數為RGB值以及透明度。(一般在場景建立之前設定)
【3】繪製出視窗的對角線,並在螢幕中心繪製一個圓
void HelloWorld::draw()
{
CCSize size = CCDirector::sharedDirector()->getWinSize();
glLineWidth(2.0f); //設定線寬
ccDrawColor4B(255,0,0,255); //設定畫筆括顏色
ccDrawLine(ccp(0,0),ccp(size.width,size.height));
ccDrawLine(ccp(size.width,0),ccp(0,size.height));
ccDrawColor4B(255,255,0,255);
ccDrawCircle(ccp(size.width/2,size.height/2),50,CC_DEGREES_TO_RADIANS(90),50,false);
}
【總結】使用Cocos2d-x繪製圖形很容易實現,附上執行效果圖: