cocos2d-x中的NODE_FUNC和CREATE_FUNC宏作用

原创 2013年12月04日 14:31:56

NODE_FUNC (   __TYPE__ )

CREATE_FUNC (   __TYPE__ )


我们经常在头文件中用到上面两个宏。一个重写node()方法,另一个重写create()方法.


NODE_FUNC (   __TYPE__ )代码如下:

CC_DEPRECATED_ATTRIBUTEstatic__TYPE__* node() \

{ \

__TYPE__ *pRet = new __TYPE__(); \

if (pRet && pRet->init()) \

{ \

pRet->autorelease(); \

return pRet; \

} \

else \

{ \

delete pRet; \

pRet = NULL; \

return NULL; \

} \

}


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; \

} \

}


从代码可以看出重写的作用:

实现二阶段构造:

即先调用构造函数(CCLayer类node方法中调用构造函数),再调用init方法进行初始化(子类中先调用父类的init方法)。

设置其自动释放内存,方便内存管理,不需要手动去释放

相关文章推荐

Cocos2d-x 一些常见宏的作用

2.常见宏    1)NS_CC_BEGIN cocos2d命名空间开始    2) NS_CC_END  cocos2d命名空间结束    3)USING_NS_CC 声明cocos2d命名空...

linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'

解决cocos2d-x中编译出现的一个小问题 对于cocos2d-x 2.×中编译中,若头文件中引入了#include "cocos-ext.h",在进行C++编译的时候会遇到如下错误: undefi...

cocos2d-x create_project.py failed WindowsError Error 3

准备建一个cocos2d-x工程.采取的是直接进入到$(COCOS2D-X_ROOTDIR)\tools\project-creator 运行create_project.py. cmd语句如下运行:...
  • ablian
  • ablian
  • 2013年08月28日 10:05
  • 1504

cocos2d-x 两阶段构造器以及静态create()函数

第一阶段是运行C++类构造器。

quick-cocos2d-x 3.3 final 中cc.CardinalSplineTo:create导出到lua

最近做的一个quick-cocos2d-x 3.3 final项目中使用到了曲线运动CardinalSpline,发现cc.CardinalSplineBy:create是可以使用的,但是cc.Car...

Create Cocos2D-X HelloWorld Project

原文: http://blog.csdn.net/sttyytw/article/details/17005263 [我的注释是这样的]笔者遇到的坑 NDK是自解压的, 然后随便放哪都行. coco...

cocos2d-x 用create_project.py创建项目出现SyntaxError: invalid syntax解决方法

cocos2d-x版本为2.2.3 python版本为3.3.2150 在用create_project.py创建项目时出现了SyntaxError: invalid syntax 原因:pyt...

Cocos2d-x游戏开发之CCLabelTTF标签详解之Create方法(设置自动换行的标签)和换行符的巧妙使用(十六)(高级篇)

在上面的一篇文章之中,我们讲解了标签的对齐方式,设置后,可以固定标签的位置,向固定的方向增加内容,就像是写字一样的。 好的,问题来了,写字的时候,当一行足够填写内容的时候,上面的方法是OK的;当我们要...

cocos2d-x create_project.py python3版本

之前cocos2d-x都是 python2.7版本,固改成python3.x版本 ,仅仅是个人爱好修改。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d-x中的NODE_FUNC和CREATE_FUNC宏作用
举报原因:
原因补充:

(最多只允许输入30个字)