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。可以看下面的转换场景方法
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 ()
这个感觉在之后的关卡型游戏升级很有用,可以继续用之前的存档