cocos2dx 自學記錄(5)-- 界面的切換

1.繼續補全上次的start按鈕,要求按下後進入到遊戲畫面。

在寫之前,看到AppDelegate.cpp裏面是這樣載入最原始的界面的

CCDirector* pDirector = CCDirector::sharedDirector();
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
pDirector->setOpenGLView(pEGLView);
// turn on display FPS
pDirector->setDisplayStats(false);
// set FPS. the default value is 1.0/60 if you don't call this
pDirector->setAnimationInterval(1.0 / 60);
// create a scene. it's an autorelease object
CCScene *pScene = HelloWorld::scene();
// run
pDirector->runWithScene(pScene);


那麼切換也要用到這個 CCDirector。可以看下面的轉換場景方法

http://gl.paea.cn/contents/d4d676f371519df4.html


2.新建一個界面,可以複製原來的,然後加以改寫,這樣就可以有兩個界面了,然後在第一個界面那個按鈕實現場景轉換。

void HelloWorld::menuCallBackStart(CCObject* pSender)
{
    CCDirector* pDirector = CCDirector::sharedDirector();
    CCScene *GameScene = Game::scene();
    CCTransitionScene *s = CCTransitionCrossFade::create(2,GameScene);
    pDirector->replaceScene(s);
}


3.然後發現這樣就算你第二個場景沒寫錯也會不過編譯,因爲Eclipse找不到你的CPP,你要在 jni/Android.mk裏面增加你的寫的CPP纔可以,同時你看看就會發現爲什麼你能找到那.h而找不到cpp。


4.補充上一次,橫屏豎屏顯示的修改在AndroidManifest.xml裏面

android:screenOrientation="portrait"

原來是橫屏,改成上面就是豎屏


5.場景轉換效果圖:

wKioL1NVMLGzwOE0AAkYiNAVN6U134.jpg


6.額外提醒:各種指針一定要確保它的合法性,不然程序直接崩潰


7.場景轉換之後是我自己實現的一個2048,還用了 CCUserDefault 來存儲遊戲進度

清除存儲數據應該是用

static void     purgeSharedUserDefault ()

這個感覺在之後的關卡型遊戲升級很有用,可以繼續用之前的存檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章