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

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

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
bool SetTing::init()
{
if ( !Layer::init() )
{
returnfalse;
}
log ( "SetTinginit" );
......
returntrue;
}
void SetTing::onEnter()
{
Layer::onEnter();
"SetTingonEnter" );
}
@H_17_197@ SetTing::onEnterTransitionDidFinish()
{
Layer::onEnterTransitionDidFinish();
"SetTingonEnterTransitionDidFinish" );
}
SetTing::onExit()
{
Layer::onExit();
"SetTingonExit" );
}
SetTing::onExitTransitionDidStart()
{
Layer::onExitTransitionDidStart();
"SetTingonExitTransitionDidStart" );
}
@H_489_275@ SetTing::cleanup()
{
Layer::cleanup();
"SetTingcleanup" );
}



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

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

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

大佬总结

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

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

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