Cocos2dx 3.0 实战之—— 重写《超级马里奥》其五 一个场景的基本配置

Cocos2dx 3.0 实战之—— 重写《超级马里奥》其五 一个场景的基本配置,第1张

概述这里我们第一次加入一个Loadding界面。创建一个LoadScene.h文件和一个LoadScene.cpp文件。这里我不写其他代码,此篇只为展示一个场景类的基本配置。请看代码。 代码如下: LoadScene.h /** * Loadding场景的声明 */#ifndef __LOAD_SCENE_H__#define __LOAD_SCENE_H__#include "cocos

这里我们第一次加入一个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;}

以上的代码我本人并未在里面添加其他的层和精灵什么的。这里只是介绍一个场景类最原始的配置。下面分析下:


第一,在C++中已经说明了构造函数的存在 主要用于在类的对象创建时定义初始化的状态。很多码农喜欢在构造函数里面去做一般我们在init函数里面做的事情。从某种程度上来说这种编码习惯并不好。一般的,我们习惯于在构造函数里面只对类的对象或者变量进行初始化。
第二,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 实战之—— 重写《超级马里奥》其五 一个场景的基本配置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1023665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存