寒風的Cocos之旅之C++篇REATE_FUNC宏的解析
2015-10-06 18:30
429 查看
对cocos有了解的人,都应该对CREATE_FUNC这个宏不陌生,
那么今天寒風为大家解析一下这个函数。
首先我们看看里边的源代码:
<span style="font-family:SimHei;">/**
* define a create function for a specific type, such as CCLayer
* @__TYPE__ class type to add create(), such as CCLayer
*/
#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; \
} \
} </span>
下边是我做的一款贪吃蛇的游戏,代码如下:
SnakeBody*SnakeBody::create(int type)
{
SnakeBody *pRet = new SnakeBody();
if (pRet && pRet->init(type))
{
pRet->autorelease();
return pRet;
}
else
{
delete pRet;
pRet = NULL;
return NULL;
}
}
我们可以看到在宏的下面定义了一个create()函数返回的类型就是宏带入参
数__TYPE__指针类型.那create函数里,它执行了类的构造函数,执行了
init()初始化
函数,最后又设置创建出的对象为自动释放内存,大大缩减了开发时间.
相关文章推荐
- MacOSX Cocos2d-x 配置Android Studio以及Xcode开发环境
- cocos2d-js 3.0 beta + cocos code ide + pomelo手游框架搭建
- cocos2d-x 瞬时动作
- 【很nice的一篇文章】c++11特性与cocos2d-x 3.0之std::bind与std::function
- 豪华版飞机大战DEMO,cocos2d-x3.8,lua实现
- Cocos2d-x3.6回调函数详解
- cocos2d - 粒子系统工具(Particle Designer)
- cocos代码研究(8)持续动作子类学习笔记
- Cocos2d-x Box2D物理引擎编译设置
- cocos3——8.实现初学者指南
- cocos代码研究(7)即时动作子类学习笔记
- Cocos2d-x 开发环境搭建
- cocos代码研究(6)有限时间动作类(FiniteTimeAction)学习笔记
- cocos代码研究(5)Action学习笔记
- Cocos2d-x游戏 技能冷去 时间进度
- Cocos2D的随机数生成函数
- Cocos2D的随机数生成函数
- Cocos2D的随机数生成函数
- cocos2dx 帧动画
- Cocos2D的OALSimpleAudio预加载音频