这里我们第一次加入一个Loadding界面。创建一个LoadScene.h文件和一个LoadScene.cpp文件。这里我不写其他代码,此篇只为展示一个场景类的基本配置。请看代码。
代码如下:
LoadScene.h
/** * Loadding场景的声明 */#ifndef __LOAD_SCENE_H__#define __LOAD_SCENE_H__#include "cocos2d.h"USING_NS_CC;/** * 定义一个LoadLayer类继承自Layer类 */class LoadLayer : public Layer{public: /** * 构造函数 */ LoadLayer(); /** * 析构函数 */ virtual ~LoadLayer(); /** * 创建当前场景并加入LoadLayer层 */ static cocos2d::Scene* createScene(); /** * 初始化LoadLayer层 */ virtual bool init(); /** * 创建LoadLayer层 */ CREATE_FUNC(LoadLayer);private: /** * 示例变量 */ int demoTag;};#endif
LoadScene.cpp
/** * Loadding场景的实现 */#include "LoadScene.h"/** * 构造函数,一般用来初始化变量 */LoadLayer::LoadLayer():demoTag(0){}/** * 析构函数,一般用来释放内存 */LoadLayer::~LoadLayer(){}/** * 创建场景,加入LoadLayer层 */Scene* LoadLayer::createScene(){ Scene* scene = Scene::create(); LoadLayer *layer = LoadLayer::create(); scene->addChild(layer); return scene;}/** * 初始化 LoadLayer */bool LoadLayer::init(){ if (!Layer::init()) { return false; } return true;}
以上的代码我本人并未在里面添加其他的层和精灵什么的。这里只是介绍一个场景类最原始的配置。下面分析下:
第二,CREATE_FUNC()宏的存在只是为了创建。我们可以翻开定义看看,如下,如果不用此句,那我们必须自己手动去写这个类似的代码。
#define CREATE_FUNC(__TYPE__) \static __TYPE__* create() \{ \ __TYPE__ *pRet = new __TYPE__(); \ if (pRet && pRet->init()) \ { \ pRet->autorelease(); \ return pRet; \ } \ else \ { \ delete pRet; \ pRet = NulL; \ return NulL; \ } \}
第三,请明确当前场景中分清createScene()函数和CREATE_FUNC()的作用,这两个做的事情完全不同,前者是创建场景并把后者加进去,后者是是cocos2dx的定义的一个创建宏,可以创建任何一个node,参数就是里面要创建的node,当前是创建一个层(这里是LoadLayer层),并对其初始化。
第四,layer的init()函数的调用在CREATE_FUNC()里面。一个好的习惯是在层的初始化函数init()里面进行场景的设计而不是构造函数里面。 而这些代码其实在创建项目的时候,项目自带的已经说明的很清楚,作为一个游戏程序员,一个好的编程习惯是很重要的。OK,此篇就到这里。 总结
以上是内存溢出为你收集整理的Cocos2dx 3.0 实战之—— 重写《超级马里奥》其五 一个场景的基本配置全部内容,希望文章能够帮你解决Cocos2dx 3.0 实战之—— 重写《超级马里奥》其五 一个场景的基本配置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)