Cocos2d-x中常用的宏小结

本文旨在交流学习,欢迎大家指正错误,欢迎大家补充,后面将持续更新。

节点创建相关的宏:
CREATE_FUNC 为特定类型增加一个静态的create函数,返回指针类型。自动调用init方法进行初始化(子类中先调用父类的init方法)。设置其自动释放内存,方便内存管理,不需要手动去释放
NODE_FUNC 为特定类型增加一个静态的node函数,返回指针类型。自动调用init方法进行初始化(子类中先调用父类的init方法)。返回的对象将由自动释放管理内存释放

平台相关的宏:
CC_TARGET_PLATFORM 判断程序的运行平台,支持的值包括:
#define CC_PLATFORM_UNKNOWN                   0
#define CC_PLATFORM_IOS                                 1
#define CC_PLATFORM_ANDROID                       2
#define CC_PLATFORM_WIN32                            3
#define CC_PLATFORM_MARMALADE                 4
#define CC_PLATFORM_LINUX                             5
#define CC_PLATFORM_BADA                              6
#define CC_PLATFORM_BLACKBERRY                   7
#define CC_PLATFORM_MAC                                8
#define CC_PLATFORM_NACL                               9
#define CC_PLATFORM_EMSCRIPTEN                  10
#define CC_PLATFORM_TIZEN                              11
#define CC_PLATFORM_WINRT                             12
#define CC_PLATFORM_WP8                                 13

与命名空间相关的宏:
NS_CC_BEGIN Cocos2d-x命名空间开始,用以代替C++中的"namespace cocos2d {"
NS_CC_END
Cocos2d-x命名空间结束,用以代替C++中的"}"
USING_NS_CC
声明Cocos2d-x的命名空间,代替"using namespace cocos2d;"

与节点属性相关的宏:
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,获得对象并保留

内存管理相关的宏:
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()函数释放Cocos-2d-x对象p的一次引用,如果p为NULL,则不进行操作
CC_SAFE_RELEASE_NULL
使用release()函数释放Cocos-2d-x对象p的一次引用,再把p赋值为NULL,如果p为NULL,则不进行操作
CC_SAFE_RETAIN
使用retain()函数增加Cocos-2d-x对象p的一次引用,如果p为NULL,则不进行操作

日志相关的宏:
CCLOG
控制台输出
CCLOGINFO
控制台输出信息
CCLOGERROR
控制台输出错误值
CCLOGWARN
控制台输出警告信息
调试相关的宏:
CC_BREAK_IF
内置的判断函数,参数是bool值,例如CC_BREAK_IF(!cond)就是判断cond是否为NULL,如果为NULL则不执行后面的代码
CCAssert 断言。第一个参数书bool值,第二个参数是字符串。断言表达式cond为真,如果不为真,则显示字符串msg信息。
_CCLOGWITHFUNCTION
输出信息时可以吧当前的函数名打印出来

转换相关的宏:
CC_DEGREES_TO_RADIANS
角度转换为弧度
CC_RADIANS_TO_DEGREES
弧度转换为角度
CC_RECT_PIXELS_TO_POINTS
将矩形由像素坐标转换为点坐标
CC_RECT_POINTS_TO_PIXELS
将矩形由点坐标转换为像素坐标
CC_POINT_PIXELS_TO_POINTS
将点由像素坐标转换为点坐标
CC_POINT_POINTS_TO_PIXELS
将点由点坐标转换为像素坐标
CC_SIZE_PIXELS_TO_POINTS
将尺寸对像由像素坐标转换为点坐标
CC_SIZE_POINTS_TO_PIXELS
将尺寸对像由点坐标转换为像素坐标
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值