Cocos2d-x學習筆記(五)例項——場景切換
【1】首先設計場景需要許多的圖片資源,往resource資料夾裡新增資原始檔:
【2】新建Cocos2d-x工程時預設的是HelloWord場景,在此只做先顯示佈景層中相關精靈圖片以及選單圖片的修改:
【3】在剛剛的init()函式中有兩個選單回撥函式,主要用於單擊選單項時切換場景:
【4】接下來看看兩個介面的佈景,主要也是修改init()函式,登陸介面只是簡單的載入一個精靈圖片作為背景,註冊介面上的佈景通過時間排程實現了一個閃屏功能(顏色瞬變)
bool Denglu::init()裡面的關鍵程式碼:
//新增標籤
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCLabelTTF* pLabel = CCLabelTTF::create("Congratulations, login successfully!", "Arial", 24);
CC_BREAK_IF(! pLabel);
pLabel->setPosition(ccp(size.width / 2, size.height-50));
this->addChild(pLabel, 1);
//新增精靈
CCSprite* pSprite = CCSprite::create("Success.jpg"
CC_BREAK_IF(! pSprite);
pSprite->setPosition(ccp(size.width/2,size.height/2));
this->addChild(pSprite, 0);
bool Zhuce::init()裡面的新增精靈、標籤的程式碼:
bool Zhuce::init()裡面的顏色佈景、時間排程的程式碼:
NewBlend方法是Test例項裡面的一個方法,直接拿來用:
void Zhuce::newBlend(float dt)
{
CCLayerColor *layer = (CCLayerColor*)getChildByTag(kTagLayer);
GLenum src;
GLenum dst;
if( layer->getBlendFunc().dst == GL_ZERO )
{
src = GL_ONE_MINUS_SRC_ALPHA;
dst = GL_RIGHT;
}
else
{
src = GL_ONE_MINUS_DST_COLOR;
dst = GL_ZERO;
}
ccBlendFunc bf = {src, dst};
layer->setBlendFunc( bf );
}
通過這次例子學到了很多有關場景、佈景層、精靈、選單、標籤、場景切換動畫等很多知識。