cocos2d-x中有三种常用的场景切换方式:replaceScene,pushScene,popScene
当然还有一些其他的方式:
runWithScene(Scene* scene)。该函数可以运行场景。只能在启动第一个场景时候调用该函数。如果已经有一个场景运行情况下则不能调用该函数。
replaceScene(Scene* scene)。切换到下一个场景。用一个新的场景替换当前场景,当前场景被终端释放。
pushScene(Scene* scene)。切换到下一个场景。将当前场景挂起放入到场景堆栈中,然后再切换到下一个场景中。
void popScene()。与pushScene配合使用,可以回到上一个场景。
void popToRootScene()。与pushScene配合使用,可以回到根场景。
void pause()。 暂停当前的场景
void resume() 。 恢复被暂停的当前场景
void end()。 终止执行,释放当前的场景
如何使用:
Director::getInstance()->replaceScene(FightScene::CreateScene());//切换到打斗场景
Director::getInstance()->pushScene(FightScene::CreateScene()); //原场景不卸载,切换到打斗场景
Director::getInstance()->popScene();//删除栈上的场景,回到原来的场景
场景切换特效:
TransitionFade(淡入淡出效果)
TransitionFadeBL(从右上到左下消失)
TransitionFadeTR(从左下到右上消失)
TransitionCrossFade(对象交替呈现)
TransitionFadeDown(从上到下百叶窗效果)
TransitionFadeUp(从下到上百叶窗效果)
TransitionFlipAngular(轻弹效果的翻转)
TransitionFlipX(水平翻转)
TransitionFlipY(垂直翻转)
TransitionJumpZoom(跳跃试效果)
Director::getInstance()->replaceScene(TransitionFadeUp::create(1.2f,FightScene::CreateScene())); //使用特效切换到打斗场景
参考:https://blog.csdn.net/qq_33850438/article/details/52313367