Cocos2d-x UI開發(fā)之場景切換代碼實例
cocos2d-x中的場景切換是通過導演類調用相應的方法完成的,可以通過CCDirector::sharedDirector()->replaceScene()方法切換場景,參數(shù)是要切換的新場景,這種方法會釋放掉舊的場景。通過pushScene()切換則是將舊的場景壓入到棧中,以便通過popScene()函數(shù)出棧,繼續(xù)運行原場景。剛開始程序啟動的時候通過runWithScene()運行一個新的場景。下面通過代碼來說明。單擊下圖可以查看效果。
這次代碼一共建立了倆個場景,一個是原來的helloworld場景,一個是SecondScene場景。具體的看代碼吧。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCLabelTTF * ttf = CCLabelTTF::create("next scene","Arial",32); //為該場景添加一個label菜單 CCMenuItemLabel * labelMenu = CCMenuItemLabel::create(ttf,this,menu_selector(HelloWorld::menuCloseCallback)); CCMenu * menu = CCMenu::create(labelMenu,NULL); this->addChild(menu); bRet = true; } while (0); return bRet; } //該函數(shù)實現(xiàn)場景的切換 void HelloWorld::menuCloseCallback(CCObject* pSender) { //使用以下的場景切換類可以產生特殊的效果,這些類有很多,一般有倆個或者是三個參數(shù),第一個參數(shù)是 //時間,第二個參數(shù)是要切換到的場景,第三個參數(shù)根據(jù)類的不同各不相同,這個淡入淡出的效果第三個參數(shù)是顏色 CCTransitionFade * fade = CCTransitionFade::create(2.0,SecondScene::scene(),ccc3(255,100,100)); CCDirector::sharedDirector()->replaceScene(fade); //也可以采用如下的方法 //CCDirector::sharedDirector()->pushScene(fade); }
以下是SecondScene.cpp
#include "SecondScene.h" #include "HelloWorldScene.h" CCScene * SecondScene::scene() { CCScene * scene = NULL; do { scene = CCScene::create(); CC_BREAK_IF(!scene); SecondScene * layer = SecondScene::create(); CC_BREAK_IF(!layer); scene->addChild(layer); } while(0); return scene; } bool SecondScene::init() { bool bRet = false; do { CC_BREAK_IF(!CCLayer::init()); CCLabelTTF * ttf = CCLabelTTF::create("first scene","Arial",32); CCMenuItemLabel * labelMenu = CCMenuItemLabel::create(ttf,this,menu_selector(SecondScene::changeScene)); CCMenu * menu = CCMenu::create(labelMenu,NULL); this->addChild(menu); bRet = true; } while(0); return bRet; } void SecondScene::changeScene(CCObject * sender) { //使用CCTransitionPageTurn類需要先設置攝像機 CCDirector::sharedDirector()->setDepthTest(true); //第三個參數(shù)為false表示向前翻頁,為true表示向后翻頁 CCTransitionPageTurn * pageTurn = CCTransitionPageTurn::create(2.0,HelloWorld::scene(),false); CCDirector::sharedDirector()->replaceScene(pageTurn); //采用如下的方法就沒有特效了 //CCDirector::sharedDirector()->popScene(); }
上一篇:Cocos2d-x學習筆記之Hello World源碼分析
欄 目:C語言
下一篇:Cocos2d-x學習筆記之Hello World!
本文標題:Cocos2d-x UI開發(fā)之場景切換代碼實例
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3402.html
您可能感興趣的文章
- 01-10fatal error LNK1104: 無法打開文件“l(fā)ibc.lib”的解決方法
- 01-10深入探討linux下進程的最大線程數(shù)、進程最大數(shù)、進程打開的文
- 01-10DHCP:解析開發(fā)板上動態(tài)獲取ip的2種實現(xiàn)方法詳解
- 01-10ubuntu中打開終端的三種解決方法
- 01-10C語言文件操作函數(shù)大全(超詳細)
- 01-10基于linux下C開發(fā)中的幾點技術經驗總結
- 01-10C++ 創(chuàng)建桌面快捷方式 開始菜單的實現(xiàn)代碼
- 01-10C++函數(shù)重載的深入解析
- 01-10C++ 在堆上開辟與釋放二維、三維指針詳細解析
- 01-10VC++開發(fā)中完美解決頭文件相互包含問題的方法解析


閱讀排行
本欄相關
- 04-02c語言函數(shù)調用后清空內存 c語言調用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調用函數(shù)求fibo C語言調用函數(shù)求
隨機閱讀
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10C#中split用法實例總結
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改