Cocos2dx常见的宏

Posted by Xiaoxi on November 30, 2015

#常见的宏


###1.与节点创建相关的宏

  • CREATE_FUNC 为一个特定的类型增加一个静态的create函数,返回类型指针。自动调用了init函数,返回的对象将由自动释放池管理内存释放。
  • NODE_FUNC 为一个特定的类型增加一个静态的node函数,返回类型指针。自动调用了init函数,返回的对象将由自动释放池管理内存释放。

###2.与平台相关的宏

CC_TARGET_PLATFORM 判断程序的运行平台


###3.与命名空间相关的宏

  • NS_CC_BEGIN Cocos2d-x命名空间开始,代替C++中的namespace cocos2d{
  • NS_CC_END Cocos2d-x命名空间结束,代替C++中的“}”
  • USING_NS_CC 代替“using namespace cocos2d;”

###4.与节点属性相关的宏

  • CC_PROPERTY_READONLY 同CC_PROPERTY,不同的是它只有get函数,没有set函数。get函数需要重写
  • CC_PROPERTY_READONLY_PASS_BY_REF 同CC_PROPERTY_PASS_BY_REF,不用的是它只有get函数,没有set函数
  • CC_PROPERTY 声明一个受保护的成员变量,第一个参数是变量类型,第二个是变量名,第三个参数是get/set函数名。需要注意的是,get/Set函数需要重写。CC_PROPERTY更适用于快速声明一个值属性。
  • CC_PROPERTY_PASS_BY_REF 同CC_PROPERTY,不同的是其get函数返回的是引用值
  • CC_SYNTHESIZE_READONLY 同CC_SYNTHESIZE,不同的是其只有get函数,没有set函数
  • CC_SYNTHESIZE_READONLY_PASS_BY_REF 同CC_SYNTHESIZE_PASS_BY_REF,不同的是其只有get函数,没有set函数
  • CC_SYNTHESIZE 同CC_PROPERTY,不同的是其get/set函数都有实现
  • CC_SYNTHESIZE_PASS_BY_REF 同CC_SYNTHESIZE,不同的是其get函数返回的是引用值
  • CC_SYNTHESIZE_RETAIN 同CC_SYNTHESIZE_PASS_BY_REF,获得对象并保留

###5.与内存管理相关的宏

  • CC_SAFE_DELETE 使用delete操作符删除一个C++对象p。如果p为NULL,则不进行操作。
  • CC_SAFE_DELETE_ARRAY 使用delete[]操作符删除一个C++数组p。如果p为NULL,则不进行操作。
  • CC_SAFE_FREE 使用free()函数删除p,如果p为NULL,则不进行操作
  • CC_SAFE_RELEASE 使用release()函数释放Cocos2d-x对象p的一次引用,如果p为NULL,则不进行操作。
  • CC_SAFE_RELEASE_NULL 使用release()函数释放Cocos2d-x对象p的一次引用,再把P赋值为NULL。如果p已经为NULL,则不进行操作。
  • CC_SAFE_RETAIN 使用retain()函数增加Cocos2d-x对象p的一次引用。如果p为NULL,则不进行操作。

###6.与日志相关的宏

  • CCLOG 控制台输出
  • CCLOGINFO 控制台输出信息
  • CCLOGERROR 控制台输出错误值
  • CCLOGWARN 控制台输出警告值

###7.与调试相关的宏

  • CC_BREAK_IF 内置的判断函数,参数是bool值。例如CC_BREAK_IF(!cond)就是判断cond是否为NULL,如果为NULL则不执行后面的代码。
  • CCAssert 断言 第一个参数是bool值 第二个是字符串。 表达式不为真,显示字符串信息
  • __CCLOGWITHFUNCTION 输出信息时,可以把当前函数名打印出来

###8.与转换相关的宏

  • CC_DEGREES_TO_RADIANS 角度转换为弧度
  • CC_RADIANS_TO_DEGREES 弧度转换为角度
  • CC_RECT_PIXELS_TO_POINTS 将矩形由像素坐标转换为点坐标
  • CC_RECT_POINTS_TO_PIXELS 将矩形由点坐标转换为像素坐标
  • CC_POINT_POINT_TO_TO_PIXELS 将点由坐标系转换为像素坐标