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 ()

这个感觉在之后的关卡型游戏升级很有用,可以继续用之前的存档

你可能感兴趣的:(cocos2dx)