Cocos2dx 小技巧(五)常用宏介绍
来源:互联网 发布:修改mac地址 不能上网 编辑:程序博客网 时间:2024/06/05 05:55
在第四篇介绍委托时,CC_SYNTHESIZE 这个宏出来show了一番后回去很是嘚瑟,于是他的兄弟姐妹们不干了,凭什么他能show而他们就不行?
为了公平起见,我赶紧也把其他的常用宏也拉出来溜溜。
1、CC_SYNTHESIZE(varType, varName, funName):声明一个成员变量以及getfunName,setfunName函数.函数声明和实现都有
这个直接用第四篇那些现成的。如下:
看过源码后,我们把CC_SYNTHESIZE(MyDelegate*,delegator,Delegator);带进去试下,实际上与下面这几条代码是同样的意思。
2、CC_SYNTHESIZE_PASS_BY_REF(varType, varName, funName):类似CC_SYNTHESIZE,不过getfunName返回的是引用。
3、CC_SYNTHESIZE_READONLY(varType, varName, funName):声明一个成员变量以及getfunName函数,没有set函数。getfunName已经实现,其实现就是返回这个值。其实看到READONLY就知道它是只读的了。
4、CC_SYNTHESIZE_READONLY_PASS_BY_REF(varType, varName, funName):类似CC_SYNTHESIZE_READONLY,不过getfunName返回的是引用
5、CC_PROPERTY(varType, varName, funName):声明一个成员变量以及getfunName,setfunName函数.函数实现要自己做
举个例子介绍下:
6、CC_PROPERTY_PASS_BY_REF(varType, varName, funName):类似CC_PROPERTY,,不过getfunName返回的是引用。
7、CC_PROPERTY_READONLY(varType, varName, funName):又是一个只读,声明一个成员变量以及getfunName函数,没有set函数。getfunName函数的实现要自己做
8、CC_PROPERTY_READONLY_PASS_BY_REF(varType, varName, funName):类似CC_PROPERTY_READONLY,不过getfunName返回的是引用。getfunName函数的实现要自己做
恩,就简单介绍到这里啦。嘿嘿。
尊重原创,转载请注明来源:http://blog.csdn.net/start530/article/details/23212943
为了公平起见,我赶紧也把其他的常用宏也拉出来溜溜。
1、CC_SYNTHESIZE(varType, varName, funName):声明一个成员变量以及getfunName,setfunName函数.函数声明和实现都有
这个直接用第四篇那些现成的。如下:
- CC_SYNTHESIZE(MyDelegate*,delegator,Delegator);//这一步不理解的看下面
- //源码:
- #define CC_SYNTHESIZE(varType, varName, funName)\
- protected: varType varName;\
- public: virtual varType get##funName(void) const { return varName; }\
- public: virtual void set##funName(varType var){ varName = var; }
- protected:
- MyDelegate* delegate;
- public:
- virtual MyDelegate* getDelegator(void) const { return delegate};
- virtual void setDelegator(MyDelegate* dele) { delegate = dele};
2、CC_SYNTHESIZE_PASS_BY_REF(varType, varName, funName):类似CC_SYNTHESIZE,不过getfunName返回的是引用。
3、CC_SYNTHESIZE_READONLY(varType, varName, funName):声明一个成员变量以及getfunName函数,没有set函数。getfunName已经实现,其实现就是返回这个值。其实看到READONLY就知道它是只读的了。
4、CC_SYNTHESIZE_READONLY_PASS_BY_REF(varType, varName, funName):类似CC_SYNTHESIZE_READONLY,不过getfunName返回的是引用
5、CC_PROPERTY(varType, varName, funName):声明一个成员变量以及getfunName,setfunName函数.函数实现要自己做
举个例子介绍下:
- //声明
- class HelloWorld : public cocos2d::Layer
- {
- ...
- CC_PROPERTY(int,m_hp,Hp);//声明一个类型为int型的成员变量m_hp以及getHp()、setHp(int hp_int)函数
- ...
- }
- //定义
- int HelloWorld::getHp()
- {
- //自己定义实现,看是要return m_hp,或者return m_hp*2; who care?
- }
- void HelloWorld::setHp(int hp_int)
- {
- //同上,可以是 m_hp = hp_int,或者m_hp = hp_int*2; who care too?
- }
6、CC_PROPERTY_PASS_BY_REF(varType, varName, funName):类似CC_PROPERTY,,不过getfunName返回的是引用。
7、CC_PROPERTY_READONLY(varType, varName, funName):又是一个只读,声明一个成员变量以及getfunName函数,没有set函数。getfunName函数的实现要自己做
8、CC_PROPERTY_READONLY_PASS_BY_REF(varType, varName, funName):类似CC_PROPERTY_READONLY,不过getfunName返回的是引用。getfunName函数的实现要自己做
恩,就简单介绍到这里啦。嘿嘿。
尊重原创,转载请注明来源:http://blog.csdn.net/start530/article/details/23212943
0 0
- Cocos2dx 小技巧(五)常用宏介绍
- Cocos2dx 小技巧(五)常用宏介绍
- Cocos2dx 小技巧(五)常用宏介绍
- Cocos2dx 小技巧(十)三种缓存类介绍
- Cocos2dx 小技巧(十)三种缓存类介绍
- Cocos2dx小技巧(十)三种缓存类介绍
- Cocos2dx 小技巧(十)三种缓存类介绍
- Cocos2dx小技巧(十)三种缓存类介绍
- Cocos2dx 小技巧(二)单例
- Cocos2dx 小技巧(四)delegate委托
- Cocos2dx 小技巧(六)断言CCAssert
- Cocos2dx 小技巧(七) 静态数据
- Cocos2dx 小技巧(二)单例
- Cocos2dx 小技巧(四)delegate委托
- Cocos2dx 小技巧(六)断言CCAssert
- Cocos2dx 小技巧(七) 静态数据
- Cocos2dx 小技巧(十三)聊聊坐标系
- Cocos2dx 小技巧(六)断言CCAssert
- Binary XML file line #7: Error inflating class android.support.v7.widget.RecyclerView
- Android中图片占用内存的计算
- NHibernate使用入门(七)
- Beyond Compare帮你快速的找出代码之间的差异
- 关于移动视频直播技术,关键干货都在这里(一)采集
- Cocos2dx 小技巧(五)常用宏介绍
- 迅达云S3CMD客户端MAC平台部署说明
- 开发工具篇-android-android studio-各个平台快捷键常用快捷键对比
- 批处理学习
- 自定义view--绘制图形
- poj3680Intervals【最大权不相交路径】
- JavaScript之checkbox选择
- hive参数配置使用
- WebView·开车指南