[Cocos2d-x For WP8]Scene场景
生活随笔
收集整理的這篇文章主要介紹了
[Cocos2d-x For WP8]Scene场景
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
???? 場景(CCScene)?在游戲里,場景就是關卡。?CCScene是app工作流程上獨立塊,一個app可能擁有多個scene,但是在任何時候只能有一個是激活狀態(tài)的。一個CCScene對象由一個或多個CCLayer組成,layer之間是前后相連的。Layer提供了scene的外觀和行為。通常的用法是直接用一個或多個layer實例化一個scene。CCScene的子類CCTrasitionScene實現(xiàn)移動transitions,提供兩個scene之間的轉移效果,由于scene是CCNode的子類,所以scene可以手工或者用aciton來轉變坐標。所有層和精靈都是他的(子節(jié)點)children。
CCScene的4個基本方法:
runWithScene(運行畫面),
replaceScene(替換場景 例如從主菜單進入游戲界面),
pushScene(暫停界面),
popScene(從暫停的界面還原到游戲界面)
示例:
class SceneTestLayer1 : public cocos2d::CCLayer { public:SceneTestLayer1();~SceneTestLayer1();virtual void onEnter();virtual void onEnterTransitionDidFinish();void onPushScene(cocos2d::CCObject* pSender);void onPushSceneTran(cocos2d::CCObject* pSender); } ;class SceneTestLayer2 : public cocos2d::CCLayer { public:SceneTestLayer2();void onGoBack(cocos2d::CCObject* pSender); } ;SceneTestLayer1::SceneTestLayer1() {CCMenuItemFont* item1 = CCMenuItemFont::create( "Test pushScene", this, menu_selector(SceneTestLayer1::onPushScene) );CCMenuItemFont* item2 = CCMenuItemFont::create( "Test pushScene w/transition", this, menu_selector(SceneTestLayer1::onPushSceneTran) );CCMenu* menu = CCMenu::create( item1, item2, NULL );menu->alignItemsVertically(); addChild( menu ); }void SceneTestLayer1::onEnter() {CCLOG("SceneTestLayer1#onEnter");CCLayer::onEnter(); }void SceneTestLayer1::onEnterTransitionDidFinish() {CCLOG("SceneTestLayer1#onEnterTransitionDidFinish");CCLayer::onEnterTransitionDidFinish(); }SceneTestLayer1::~SceneTestLayer1() { }void SceneTestLayer1::onPushScene(CCObject* pSender) {//創(chuàng)建一個新的CCScene來作為當前的SceneCCScene* scene = new CCScene();CCLayer* pLayer = new SceneTestLayer2();scene->addChild( pLayer, 0 );CCDirector::sharedDirector()->pushScene( scene );scene->release();pLayer->release(); }void SceneTestLayer1::onPushSceneTran(CCObject* pSender) {//創(chuàng)建一個新的CCScene來作為當前的SceneCCScene* scene = new CCScene();CCLayer* pLayer = new SceneTestLayer2();scene->addChild( pLayer, 0 );//使用動畫效果的切換CCDirector::sharedDirector()->pushScene( CCTransitionSlideInT::create(1, scene) );scene->release();pLayer->release(); }//------------------------------------------------------------------ // // SceneTestLayer2 // //------------------------------------------------------------------ SceneTestLayer2::SceneTestLayer2() {CCMenuItemFont* item = CCMenuItemFont::create( "Go Back", this, menu_selector(SceneTestLayer2::onGoBack) ); CCMenu* menu = CCMenu::create( item, NULL );menu->alignItemsVertically(); addChild( menu ); }void SceneTestLayer2::onGoBack(CCObject* pSender) {//移除CCDirector::sharedDirector()->popScene(); }運行的效果:
??
總結
以上是生活随笔為你收集整理的[Cocos2d-x For WP8]Scene场景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么情况创建索引?什么情况不创建索引?M
- 下一篇: HTML5在手机端实现视频全屏展示