1. 程式人生 > >Cocos2d-x學習筆記(五)例項——場景切換

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 );

}

通過這次例子學到了很多有關場景、佈景層、精靈、選單、標籤、場景切換動畫等很多知識。

完整程式碼:http://download.csdn.net/detail/ll_gg_tt/5955163