首页 > 代码库 > cocos2dx 场景切换
cocos2dx 场景切换
版本是 cocos2dx 3.3
场景切换的时刻是:(代码有删减)
void Director::drawScene(){ // calculate "global" dt calculateDeltaTime(); if (_nextScene) { setNextScene(); }}
每一帧都会检查,看是不是有 _nextScene, 也就是 是不是需要进行场景切换了。
一般场景切换的过程:
当添加一个场景时,正在运行的场景会调用
_runningScene->onExitTransitionDidStart();
_runningScene->onExit();
然后新添加的场景会调用
onEnter();
onEnterTransitionDidFinish();
如果新添加的一个场景是 过渡场景(该对象里面包含真正的即将切换的场景对象),切换过程是这样:
1 过渡场景替代旧场景,变为正在运行的场景
2(过渡场景里面有保存了两个成员,一个是旧场景,一个真正的新场景)
通知旧场景 onExitTransitionDidStart()
通知真正即将添加的场景 onEnter()
3 当 过渡动作完成后,真正的新场景跟过渡场景切换。
通知旧场景 onExit()
通知新场景 onEnterTransitionDidFinish()
4 设置 真正的新场景为正在运行的场景,_nextScene 设置为 null
//这两个函数调用时刻是场景被移除时onExitTransitionDidStart();onExit();//这个两个函数调用时刻是场景添加时onEnter();onEnterTransitionDidFinish();
通过以上分析,我们得出,当有过渡场景场景切换时,每一组函数的调用是有时间间隔的。没有过渡场景则是瞬时完成调用
cocos2dx 场景切换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。