在 HelloWorldScence.cpp中的完整代码:
#include "HelloWorldScene.h" #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h" USING_NS_CC; using namespace cocostudio::timeline; Scene* 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; } // on "init" you need to initialize your instance bool HelloWorld::init() //初始化层调用 { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } log("HelloWorld init"); return true; } void HelloWorld::onEnter(){ //进入层时调用 Layer::onEnter(); log("HelloWorld onEnter"); } void HelloWorld::onEnterTransitionDidFinish(){ //进入层而且过渡动画时动画时调用 Layer::onEnterTransitionDidFinish(); log("HelloWord onEnterTransitionDidFinish"); } void HelloWorld::onExit(){ //退出层时调用 Layer::onExit(); log("HelloWorld onExit"); } void HelloWorld::onExitTransitionDidStart(){ //退出层而且过渡动画时调用 Layer::onExitTransitionDidStart(); log("HelloWorld onExitTransitionDidStart"); } void HelloWorld::cleanup(){ //层对象被清除时调用 Layer::cleanup(); log("HelloWorld cleanup"); }
在HelloWorldScene.h中的代码:
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class HelloWorld : public cocos2d::Layer { public: // there's no 'id' in cpp, so we recommend returning the class instance pointer static cocos2d::Scene* createScene(); // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone virtual bool init(); virtual void onEnter(); virtual void onEnterTransitionDidFinish(); virtual void onExit(); virtual void onExitTransitionDidStart(); virtual void cleanup(); // implement the "static create()" method manually CREATE_FUNC(HelloWorld); }; #endif // __HELLOWORLD_SCENE_H__