常见的宏
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.与日志相关的宏
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 将点由坐标系转换为像素坐标