cocos2dx Scene 生命周期(replaceScene,popScene后续补充)

cocos2dx 在多场景切换中,生命周期打印的效果如下:

从 MyScene 场景进入,切换到 HelloWorld 场景,再推出 HelloWorld 场景,流程图(见附件,,,,不知道怎么上传图片,不能粘贴图,郁闷。。。)

打印 log 如下,

MyScene 代码:
MyScene::MyScene() {
	CCLog("wangss------------->MyScene");
}
MyScene::~MyScene() {
	CCLog("wangss------------->~~MyScene");
}
void MyScene::onEnter() {
	CCLog("wangss------------->onEnter");
	Layer::onEnter();

}
void MyScene::onEnterTransitionDidFinish() {
	CCLog("wangss------------->onEnterTransitionDidFinish");
}
void MyScene::onExit() {
	CCLog("wangss------------->onExit");
	Layer::onExit();
}
void MyScene::onExitTransitionDidStart() {
	CCLog("wangss------------->onExitTransitionDidStart");
}
void MyScene::cleanup() {
	CCLog("wangss------------->cleanup");
}

Scene* MyScene::createScene() {
	CCLog("wangss------------->createScene");
	auto scene = Scene::create();
	auto layer = MyScene::create();
	scene->addChild(layer);
	return scene;
}
bool MyScene::init() {
	CCLog("wangss------------->init");
	if (!Layer::init()) {
		return false;
	}

	Size visibleSize = Director::getInstance()->getVisibleSize();
	Vec2 origin = Director::getInstance()->getVisibleOrigin();

	// spriteTest(visibleSize);
	// labelTest(visibleSize);
	// menuTest(visibleSize);
	// languageTest(visibleSize);
	// scheduleTest(visibleSize);
	// scaleNineSpriteTest(visibleSize);
	// shujujiegouTest(visibleSize);
	// actionTest(visibleSize);
	// actionCallBackTest(visibleSize);
	// frameAnimationTest(visibleSize);
	// actionEaseTest(visibleSize);
	// progressActionTest(visibleSize);
	lifeCycleTest(visibleSize);
	return true;
}

HelloWorld 代码:

HelloWorld::HelloWorld() {
	CCLog("wangss------HelloWorld------->HelloWorld");
}
HelloWorld::~HelloWorld() {
	CCLog("wangss------HelloWorld------->~~HelloWorld");
}
void HelloWorld::onEnter() {
	CCLog("wangss------HelloWorld------->onEnter");
	Layer::onEnter();

}
void HelloWorld::onEnterTransitionDidFinish() {
	CCLog("wangss------HelloWorld------->onEnterTransitionDidFinish");
}
void HelloWorld::onExit() {
	CCLog("wangss------HelloWorld------->onExit");
	Layer::onExit();
}
void HelloWorld::onExitTransitionDidStart() {
	CCLog("wangss------HelloWorld------->onExitTransitionDidStart");
}
void HelloWorld::cleanup() {
	CCLog("wangss------HelloWorld------->cleanup");
}

Scene* HelloWorld::createScene()
{
	CCLog("wangss------HelloWorld------->createScene");

    // ‘scene‘ is an autorelease object
    auto scene = Scene::create();
    
    // ‘layer‘ is an autorelease object
    auto layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

11-02 15:09:40.290: D/cocos2d-x debug info(23066): wangss------------->createScene

11-02 15:09:40.300: D/cocos2d-x debug info(23066): wangss------------->MyScene

11-02 15:09:40.300: D/cocos2d-x debug info(23066): wangss------------->init

11-02 15:09:40.320: D/cocos2d-x debug info(23066): wangss------------->onEnter

11-02 15:09:40.320: D/cocos2d-x debug info(23066): wangss------------->onEnterTransitionDidFinish

11-02 15:09:43.640: D/cocos2d-x debug info(23066): wangss------HelloWorld------->createScene

11-02 15:09:43.640: D/cocos2d-x debug info(23066): wangss------HelloWorld------->HelloWorld

11-02 15:09:43.640: D/cocos2d-x debug info(23066): wangss------HelloWorld------->init

11-02 15:09:43.760: D/cocos2d-x debug info(23066): wangss------------->onExitTransitionDidStart

11-02 15:09:43.760: D/cocos2d-x debug info(23066): wangss------HelloWorld------->onEnter

11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------------->onExit

11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------HelloWorld------->onEnterTransitionDidFinish

11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------------->cleanup

11-02 15:09:44.940: D/cocos2d-x debug info(23066): wangss------------->~~MyScene

11-02 15:09:46.220: D/cocos2d-x debug info(23066): wangss------HelloWorld------->onExit

11-02 15:09:46.220: D/cocos2d-x debug info(23066): wangss------HelloWorld------->cleanup

11-02 15:09:46.220: D/cocos2d-x debug info(23066): wangss------HelloWorld------->~~HelloWorld

时间: 2024-10-20 16:02:17

cocos2dx Scene 生命周期(replaceScene,popScene后续补充)的相关文章

android-service生命周期的实践结果

startService的生命周期实践: public class MyService extends Service { @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); Log.i("msg","onCreate"); } @Override public in

Cocos2d-x 场景的生命周期

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 又是一年毕业季啊... 毕业的学长学姐们分享各种经验--考研.考公.培训 ,巴拉巴拉.... 继续做我的cocos2d-x吧 今天看一看场景的生命周期(这种基础东西,实在不该现在才注意到o(╯□╰)o) 这个生命周期,其实很重要,比如,在播放背景音乐的时候,什么

cocos2dx学习之路----第十章(Node节点生命周期详解)

这一篇我们就来看看Node节点的生命周期问题. 对于Node节点的生命周期,也称回调事件的回调.当对节点进行操作时,比如被添加或者移除,它默认都会调用自己的一些事件方法.现在就让我们看看属于它事件的回调方法有哪些,如下所示: virtual void onEnter(); //被添加到场景中的节点时调用 virtual void onEnterTransitionDidFinish(); //被添加到场景中的节点完成时调用 virtual void onExitTransitionDidStar

Cocos2d-x Lua中多场景切换生命周期

在多个场景切换时候,场景的生命周期会更加复杂.这一节我们介绍一下场景切换生命周期.多个场景切换时候分为几种情况:情况1,使用pushScene函数从实现GameScene场景进入SettingScene场景.情况2,使用replaceScene函数实现从GameScene场景进入SettingScene场景.情况3,使用popScene函数从实现SettingScene场景回到GameScene场景.我们参考GameScene重写SettingScene的中几个生命周期函数,代码如下: [htm

Cocos2d-x多场景切换生命周期

在多个场景切换时候,场景的生命周期会更加复杂.这一节我们介绍一下场景切换生命周期. 多个场景切换时候分为几种情况: 情况1,使用pushScene函数从实现HelloWorld场景进入Setting场景. 情况2.使用replaceScene函数实现从HelloWorld场景进入Setting场景. 情况3,使用popScene函数从实现Setting场景回到HelloWorld场景. 我们參考HelloWorld重写Setting层的中几个生命周期函数,代码例如以下: bool Setting

12、Cocos2dx 3.0游戏开发找小三之3.0中的生命周期分析

重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27706303 生命周期分析 在前面文章中我们执行了第一个 Cocos2d-x 游戏,同一时候也介绍了控制游戏生命周期的 AppDelegate 文件. 以下我们将结合一些游戏调试经常使用的技巧以及VS工具调试的方法来分析 Cocos2d-x 程序的生命周期. VS工具调试 1.查看内存窗体 2.查看输出窗体 3.假设程序崩溃查看调用堆栈窗体 打开项目

Activity生命周期的补充

正常来说Activity的生命周期是这样的 如果有重写 onSaveInstanceState(Bundle outState) 来保存重要参数 ,比如有重新赋值的成员变量,那么 onSaveInstanceState() 方法在  onPause() 之后 onStop() 之前;然后 onStop() 执行之后进入别的Activity; 其他界面如果有返回数据会先 onActivityResult() 然后就是正常的: onRestart()  __  onStart()  __  onRe

Django补充——中间件、请求的生命周期等

一:中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件,如下图. 与mange.py在同一目录下的文件夹 wupeiqi/middleware下的auth.py文件中的Authentication类 中间件中可以定义四个方法,分别是: pro

连载《一个程序猿的生命周期》- 30、争取内蒙区的市场销售

一个程序猿的生命周期 微信平台 口    号:职业交流,职业规划:面对现实,用心去交流.感悟.  公众号:iterlifetime二维码:  百木-ITer职业交流奋斗 群:141588103 来公司的时候只不过是一名最普通的员工,尽管招来的时候老板承诺是负责项目团队.心里明白老板的用意,需要有一个过度期.但是,并不妨碍我对公司细致入微的观察,包括对人的观察,确实有些微妙的关系,却用语言无法准备的描述当时的感受. 在<22.缺了一条腿的公司>也大概描述了公司的情况,公司的业务或者说是市场.销售