cocos2d-x-3.1 经常使用宏 (coco2d-x 学习笔记五)
在代码中使用这些宏,能够降低敲键盘的次数,从而提高编写效率。
与节点属性(property)相关的
| CC_PROPERTY_READONLY |
| CC_PROPERTY_READONLY_PASS_BY_REF |
| CC_PROPERTY |
| CC_PROPERTY_PASS_BY_REF |
| CC_SYNTHESIZE_READONLY |
| CC_SYNTHESIZE_READONLY_PASS_BY_REF |
| CC_SYNTHESIZE |
| CC_SYNTHESIZE_PASS_BY_REF |
| CC_SYNTHESIZE_RETAIN |
详细定义见CCPlatformMacros.h。这些主要是为了模拟objective-C下的@property, readonly, retain, @synthesize等keyword。
与命名空间(namespace)相关
| NS_CC_BEGIN |
| NS_CC_END |
| USING_NS_CC |
详细定义见CCPlatformMacros.h。
与节点的创建方法(node, create)相关
| CREATE_FUNC |
| NODE_FUNC |
详细定义见CCPlatformMacros.h。
与内存管理相关
| CC_SAFE_DELETE |
| CC_SAFE_DELETE_ARRAY |
| CC_SAFE_FREE |
| CC_SAFE_RELEASE |
| CC_SAFE_RELEASE_NULL |
| CC_SAFE_RETAIN |
日志
| CCLOG |
| CCLOGERROR |
| CCLOGINFO |
| CCLOGWARN |
详细定义见CCPlatformMacros.h。
断言
| CC_BREAK_IF |
| CC_ASSERT |
| CCAssert |
当中CC_BREAK_IF是在CCPlatformMacros.h中定义的,它用在循环中的条件推断。
CC_BREAK_IF有一个使用很频繁的场合,就是在do{}while(0)中。这个使用语句块的作用还是挺大的。依据GOOGLE编程规范,为了降低代码层次,条件推断应该先进行,不满足则跳过后面代码。跳过有两种方式,一种是return,还有一种是break。前一种方式下,后面的所有代码都不能得到运行;后一种方式必须放在循环或者swich语句块中。假设使用do{}while(0)则能够解决第一种方式后面的代码得不到运行的问题。
CCAssert定义在ccMacros.h中,它是对CC_ASSERT的封装。与数学相关
| CCRANDOM_MINUS1_1 |
| CCRANDOM_0_1 |
| CC_DEGREES_TO_RADIANS |
| CC_RADIANS_TO_DEGREES |
详细定义见ccMacros.h。产生随机数与弧度与角度的转换。
cocos2d-x-3.1 经常使用宏 (coco2d-x 学习笔记五)的更多相关文章
- (C/C++学习笔记) 五. 常变量(只读变量)和宏
五. 常变量(只读变量)和宏 ● 常变量 常变量 #include <iostream.h> //预处理文件 int main() { const d ...
- Cocos2d-x学习笔记之常用的宏
NS_CC_BEGIN:Cocos2D-x命名空间开始,属于Cocos2D-x的类的定义以该宏开头,用以代替C++中的“namespace cocos2d{”. NS_CC_END:Cocos2D-x ...
- C++学习笔记 宏 const 内联 枚举
宏, const变量, 内联, 枚举 宏 宏定义: 宏即宏替换,在C语言源程序中允许用一个标识符来表示一个字符串,称为宏,关键字 define,在所有使用到宏的地方都只是直接的替换而不做任何类型检查 ...
- cocos2d学习笔记
doxygen工具 生成cocos2d的api文档 位图字体编辑工具 Glyph Designer http://www.71squared.com/glyphdesigner 收费的 CCLabl ...
- [原创][LaTex]LaTex学习笔记之框架及宏包
0. 简介 LaTex在书写文档时的最基本单元就是首部的写作,变相的也可以说是头文件.本文章就来总结一下文档的基本格式和常用宏包. 1. 基本单元 基本单元需要对LaTex语法有一定的了解,这个很简单 ...
- PROCESS_YIELD()宏使用及过程分析<contiki学习笔记之八>
好吧,昨晚上研究了switch()的底层实现原理--发现它并不是一般C语言教科书上那样所言,当然,这对于本身就非常熟悉汇编的同学来说,是小菜一碟.世界上,很多事情是巧合与必然的结合体,没有无缘无故的爱 ...
- PROCESS_YIELD()宏和C语言的switch语句< contiki学习笔记之七>
写在前面: 按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事 ...
- Cocos2d-x 3.x学习笔记(一):开始Cocos2d之旅
首先,进入官网下载cocos2d-x:http://www.cocos.com/download/,当然你需要注册一个账号才可以下载. 接下来需要跟着官网的配置文档配置一下开发环境,不得不说,Coco ...
- C Primer Plus(第五版)学习笔记-可变宏:...和__VA_ARGS__
一 .__VA_ARGS__ P454 所讲printf()这些输出函数的参数是可变的,在调试程序时,可能希望定义参数为可变的输出函数, 那么可变参数宏会是一个选择,例如: #define DEBUG ...
随机推荐
- rhel5.8 ISO yum源配置
[root@lei1 mnt]# mkdir /mnt/iso [root@lei1 mnt]# mkdir /mnt/cdrom [root@lei1 ~]# mv rhel-server-5.8- ...
- 39一个可以让你受益HTML5课程
事不宜迟,本文作者是我们收集的在线学习HTML5资源.我们希望他们能够帮助你更好地学习HTML5. 不错啊! 只,说原作者40一个只有39一.由于第一5钍和8一是重复. 原文在此! 1. 五分钟入门H ...
- iOS_18_开关控制器_NavigationController_push道路_数据传输
最后效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...
- 谷歌上不去,长期的解决方案。在稳定高速Google和Gmail
对稳定Google神器 国内Google很不稳定,缓慢并经常上不去,由"我想去Google",安全和稳定的使用Google.Gmail.Google+所以通常需要特殊的手段岗位胜任 ...
- Python学习笔记12:标准库之对象序列化(pickle包,cPickle包)
计算机的内存中存储的是二进制的序列. 我们能够直接将某个对象所相应位置的数据抓取下来,转换成文本流 (这个过程叫做serialize),然后将文本流存入到文件里. 因为Python在创建对象时,要參考 ...
- [Unity3D]Unity3D游戏开发《反对》说到游戏(上)——目标跟踪
朋友,大家好.我是秦培,欢迎关注我的博客.我的博客地址blog.csdn.net/qinyuanpei. 首先博主要自我反省,过了这么久才来更新博客,这段时间主要是在忙着写期末的作业,所以博主基本上没 ...
- PowerShell 批量导入/导出Active Directory
PowerShell 批量导入/导出Active Directory 近期由于公司要求,须要导入20个供应商.20个客户到AD域中,刚開始手动添�了2个供应商,2个客户.可是感觉费时费 ...
- 大约cocos2d-X 3.x使用引擎版本自带的物理引擎Physics
今天打算用BOX2D物理引擎, 我想我以前听说过一些时间cocos2d-X在3.0版本封装自己的物理引擎Physics, 听名字很霸气量, 这的确是一个比BOX2D非常多( 毕竟是基于BOX2D封装的 ...
- freemarker定义自己的标签错误(八)
1.错误叙述性说明 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknow ...
- 开玩笑html5(五岁以下儿童)---绕地球月球,地球绕太阳运动(canvas实现,同样可以移动哦)
请珍惜劳动小编成果,这篇文章是原来小编,转载请注明出处. 速度的參数与真实速度有点差距.大家能够自行调整 <!DOCTYPE html> <html> <head> ...