Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2d-x多场景切换生命周期大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_673_0@ 

在多个场景切换时候,场景的生命周期会更加复杂。这一节我们介绍一下场景切换生命周期。

多个场景切换时候分为几种情况:

情况1,使用pushScene函数从实现HelloWorld场景进入setTing场景。

情况2,使用replaceScene函数实现从HelloWorld场景进入setTing场景。

情况3,使用popScene函数从实现SetTing场景回到HelloWorld场景。

我们参HelloWorld重写SetTing层的中几个生命周期函数,代码如下:

bool SetTing::init()
{           
    if( !Layer::init() )
    {
         returnfalse;
    }
  
    log("SetTinginit");
    ......
    returntrue;
}
  
void SetTing::onEnter()
{
    Layer::onEnter();
    log("SetTingonEnter");
}
  
void SetTing::onEnterTransitionDidFinish()
{
    Layer::onEnterTransitionDidFinish();
    log("SetTingonEnterTransitionDidFinish");
}
  
void SetTing::onExit()
{
    Layer::onExit();
    log("SetTingonExit");
}
  
void SetTing::onExitTransitionDidStart()
{
    Layer::onExitTransitionDidStart();
    log("SetTingonExitTransitionDidStart");
}
  
void SetTing::cleanup()
{
    Layer::cleanup();
    log("SetTingcleanup");
}


【情况1】时候,它的调用顺序如下图所示。


【情况2】时候,它的调用顺序如下图所示,从图中可见与上面不同是多出HelloWorld中cleanup函数,这也说明replaceScene函数会释放场景对象。


【情况3】时候,它的调用顺序如下图所示,从图中可见popScene函数时候调用SetTing中cleanup函数,这说明popScene函数会释放SetTing场景对象,当回到HelloWorld场景时候并不会调用init()函数,而是调用onEnter函数。

大佬总结

以上是大佬教程为你收集整理的Cocos2d-x多场景切换生命周期全部内容,希望文章能够帮你解决Cocos2d-x多场景切换生命周期所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。