这些方法调用的先后顺序如下(使用 replaceScene 方法):
1. 第2个场景的 scene 方法
2. 第2个场景的 init 方法
3. 第2个场景的 onEnter 方法
4. 转场
5. 第1个场景的 onExit 方法
6. 第2个场景的 onEnterTransitionDidFinish 方法
7. 第1个场景的 dealloc 方法
onEnter() 是在进入场景的一瞬间就开始执行了。
<p>
<br />
</p>
<p>
onEnterTransitionDidFinish() 是在完全进入场景后开始执行的。
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
因为在弄场景的延时跳转,游戏一开始显示公司Logo,然后显示游戏场景界面。
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
在第一个场景welcomScene的 onEnter() 开始场景跳转的事件。 延时3秒。
</p>
<p>
<br />
</p>
<p>
void WelcomScene::onEnter() { //跳转场景 CCScene* pScene=InverseWarsScene::scene(); CCDirector::sharedDirector()->replaceScene(CCTransitionFade::create(3,pScene)); }
</p>
<p>
<br />
</p>
<p>
<br />
</p>
<p>
这里要用到播放背景音乐,背景音乐可以在一开始进入场景 onEnter() 时候进行预加载,然后在完全进入场景 onEnterTransitionDidFinish() 的时候开始播放音乐。
</p>
<p>
void InverseWarsScene::onEnter() { //在刚进入界面的时候预加载背景音乐,在inverseWarsScene场景开始播放音乐 CocosDenshion::SimpleAudioEngine::sharedEngine()-> preloadBackgroundMusic("Audio/Background/ChmpSlct_BlindPick.mp3"); } //在完全进入这个场景后开始执行的事件 void InverseWarsScene::onEnterTransitionDidFinish() { //完全进入场景后开始播放音乐 CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("Audio/Background/ChmpSlct_BlindPick.mp3"); }
</p>
版权属于:胡东东博客
本文链接:http://blog.hudongdong.com/cocos2d/165.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!
☟☟如文章有用,可点击一次下方广告支持一下☟☟