1. 程式人生 > >Cocos2d-x學習筆記(七)例項——繪製圖形

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繪製圖形很容易實現,附上執行效果圖: