目录
版本cocos2dx 3.17(3.x)
所有node节点都有生命周期,这里只讨论场景切换中的生命周期
1. 创建两个场景(为了把注意力放在生命周期函数上,两个场景均只有一个文字菜单)
HelloWorld.h
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
USING_NS_CC;
class HelloWorld : public cocos2d::Layer{
public:
static cocos2d::Scene* createScene();
//生命周期函数
virtual bool init();
virtual void onEnter();
virtual void onEnterTransitionDidFinish();
virtual void onExit();
virtual void onExitTransitionDidStart();
virtual void cleanup();
//回调函数
void menuItemSettingCallback(Ref* pSender);
// implement the "static create()" method manually
CREATE_FUNC(HelloWorld);
};
#endif // __HELLOWORLD_SCENE_H__
HelloWorld.cpp
#include "HelloWorldScene.h"
#include "SettingScene.h"
#include "SimpleAudioEngine.h"
USING_NS_CC;
Scene* HelloWorld::createScene(){
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
bool HelloWorld::init(){
if ( !Layer::init() )
{
return false;
}
MenuItemFont::setFontName<