首页 >数据库 >mysql教程 >Cocos2d-x常用宏说明

Cocos2d-x常用宏说明

WBOY
WBOY原创
2016-06-07 15:01:091198浏览

1、CC_SYNTHESIZE(varType, varName, funName):声明一个成员变量以及getfunName,setfunName函数.函数声明和实现都有 这个直接用第四篇那些现成的 。如下: [cpp] view plaincopy CC_SYNTHESIZE(MyDelegate*,delegator,Delegator); //这一步不理解的看下面

1、CC_SYNTHESIZE(varType, varName, funName):声明一个成员变量以及getfunName,setfunName函数.函数声明和实现都有

这个直接用第四篇那些现成的。如下:

[cpp] view plaincopyCocos2d-x常用宏说明Cocos2d-x常用宏说明

  1. CC_SYNTHESIZE(MyDelegate*,delegator,Delegator);//这一步不理解的看下面   
  2. //源码:   
  3. #define CC_SYNTHESIZE(varType, varName, funName)\    
  4. protected: varType varName;\    
  5. publicvirtual varType get##funName(voidconst { return varName; }\    
  6. publicvirtual void set##funName(varType var){ varName = var; }    
看过源码后,我们把CC_SYNTHESIZE(MyDelegate*,delegator,Delegator);带进去试下,实际上与下面这几条代码是同样的意思。

[cpp] view plaincopyCocos2d-x常用宏说明Cocos2d-x常用宏说明

  1. protected:    
  2.     MyDelegate* delegate;    
  3. public:    
  4.     virtual MyDelegate* getDelegator(voidconst { return delegate};    
  5.     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函数.函数实现要自己做

举个例子介绍下:

[cpp] view plaincopyCocos2d-x常用宏说明Cocos2d-x常用宏说明

  1. //声明  
  2. class HelloWorld : public cocos2d::Layer  
  3. {  
  4.     ...  
  5.     CC_PROPERTY(int,m_hp,Hp);//声明一个类型为int型的成员变量m_hp以及getHp()、setHp(int hp_int)函数  
  6.       
  7.     ...  
  8. }  
  9. //定义  
  10. int HelloWorld::getHp()  
  11. {  
  12.     //自己定义实现,看是要return m_hp,或者return m_hp*2; who care?  
  13. }  
  14. void HelloWorld::setHp(int hp_int)  
  15. {  
  16.     //同上,可以是 m_hp = hp_int,或者m_hp = hp_int*2;  who care too?  
  17. }  

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函数的实现要自己
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn