美文网首页
Cocos2dx 小技巧(五)常用宏介绍

Cocos2dx 小技巧(五)常用宏介绍

作者: Mr_whale | 来源:发表于2017-10-22 20:55 被阅读0次

在第四篇介绍委托时,CC_SYNTHESIZE 这个宏出来show了一番后回去很是嘚瑟,于是他的兄弟姐妹们不干了,凭什么他能show而他们就不行?
为了公平起见,我赶紧也把其他的常用宏也拉出来溜溜。


黄昏的埃菲尔

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; } 

看过源码后,我们把CC_SYNTHESIZE(MyDelegate*,delegator,Delegator);带进去试下,实际上与下面这几条代码是同样的意思。

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

相关文章

  • Cocos2dx 小技巧(五)常用宏介绍

    在第四篇介绍委托时,CC_SYNTHESIZE 这个宏出来show了一番后回去很是嘚瑟,于是他的兄弟姐妹们不干了,...

  • ios常用的小宏宏

    写点常用的宏,有什么需要补充的给我留言哦 新加iphoneX的小宏宏 常用的Block解循环。 版本号获取 常用设...

  • Cocos2dx 小技巧(十)缓存类介绍

    简介: 在介绍三个缓存时,我们要先理清一个问题:什么是纹理?通俗的解释呢,纹理就是图片的意思啦。当一张图片被加载到...

  • 给cocos2d-x添加滤镜功能

    介绍: cocos做项目时经常会遇到对图片进行变色的需求,比如最常用的变灰,而cocos2dx的sprite里面并...

  • iOS开发小技巧之--WeakSelf宏的进化

    iOS开发小技巧之--WeakSelf宏的进化

  • 在做PPT时,都有哪些提升逼格的技巧?

    制作PPT的过程中使用一些技巧确实能够加快PPT的制作,今天小编给大家介绍几个比较常用的小技巧,可以帮助你在...

  • ios 常用宏定义

    虽然这是一篇介绍常用宏定义的文章,先介绍下这个的缺点 使用:你可以把代码中一些常用复杂的方法打包成宏定义来使用 l...

  • css布局和居中

    本文主要介绍了css常用的布局,居中等其他小技巧。 css布局 左右布局 利用float实现左右布局 左右模块设置...

  • Lua绑定进阶篇

    之前已经写过两篇文章《Cocos2dx Lua 绑定》详细介绍了,如何在lua中调用c++;《Cocos2dx 插...

  • 法餐烹饪小知识 —— Emulsifier乳化剂

    每日分享法餐烹饪小知识,欢迎大家关注 今天来介绍一种西餐中非常常用的技巧——Emulsifier。Emulsifi...

网友评论

      本文标题:Cocos2dx 小技巧(五)常用宏介绍

      本文链接:https://www.haomeiwen.com/subject/bxunuxtx.html