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.場景轉換效果圖:
6.額外提醒:各種指針一定要確保它的合法性,不然程序直接崩潰
7.場景轉換之後是我自己實現的一個2048,還用了 CCUserDefault 來存儲遊戲進度
清除存儲數據應該是用
static void purgeSharedUserDefault ()
這個感覺在之後的關卡型遊戲升級很有用,可以繼續用之前的存檔