cocos2dx Scene 生命周期(replaceScene,popScene后续补充)
更新:HHH   时间:2023-1-7


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




附件:http://down.51cto.com/data/2365029
返回游戏开发教程...