1. 程式人生 > >Cocos2d-x學習筆記(六)例項——多層佈景

Cocos2d-x學習筆記(六)例項——多層佈景

【關於多層佈景】

在遊戲開發中,一般會把遊戲分為兩部分:一部分是遊戲介面部分,也就是常說得UI部分;另一部分就是遊戲本身部分。有時UI有很多頁面,在頁面中用的圖也不是很多,不需要進行場景切換,只需把不同頁面做成不同的佈景,然後切換佈景層。那麼就需要一個“管理者”來管理這些介面,這時候就要使用CCLayerMultiplex(多層佈景)類。在很多遊戲中都需要在不同的介面中使用相同的幾個變數,如果不這樣做就需要做大量的儲存工作。

【關於這個例項】

 在佈景方面沒有做太多的修改,其中的幾個場景與上一個例子場景切換類似

1HelloWorld主場景只進行選單項圖片的更改

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開始)

【總結】關於多層佈景類的使用不是很難,還算比較容易理解的,附上簡單的執行效果: