Cocos2d-x學習筆記(六)例項——多層佈景
【關於多層佈景】
在遊戲開發中,一般會把遊戲分為兩部分:一部分是遊戲介面部分,也就是常說得UI部分;另一部分就是遊戲本身部分。有時UI有很多頁面,在頁面中用的圖也不是很多,不需要進行場景切換,只需把不同頁面做成不同的佈景,然後切換佈景層。那麼就需要一個“管理者”來管理這些介面,這時候就要使用CCLayerMultiplex(多層佈景)類。在很多遊戲中都需要在不同的介面中使用相同的幾個變數,如果不這樣做就需要做大量的儲存工作。
【關於這個例項】
在佈景方面沒有做太多的修改,其中的幾個場景與上一個例子場景切換類似
【1】HelloWorld主場景只進行選單項圖片的更改
CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
"denglu2.png",
"denglu1.png",
this,
menu_selector(HelloWorld::menuCloseCallback));
CC_BREAK_IF(! pCloseItem);
【2】新建一個場景類Scenes,主要用於裝載佈景層、控制佈景層的內部切換
其類申明如下:
class Scenes : public cocos2d::CCScene
{
public:
void runThisTest();
CREATE_FUNC(Scenes);
};
runThisTest方法:
【3】在選單項訊息響應函式裡執行此場景(單擊或觸控選單項切換場景)
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// "close" menu item clicked
Scenes* scene = Scenes::create();
scene->runThisTest();
}
【4】對於佈景方面的東西不在贅述,由於預設顯示登入佈景,檢視其選單項
void Denglu::menuDengluCallback(CCObject* pSender)
{
((CCLayerMultiplex*)m_pParent)->switchTo(1);
}
其中CCLayerMultiplex類的switchTo方法主要用於切換佈景層(序號從0開始)
【總結】關於多層佈景類的使用不是很難,還算比較容易理解的,附上簡單的執行效果: