2013-03-19 95 views

回答

0

您可以使用已在cocos2d-x中定义的宏。

#define CC_SYNTHESIZE_RETAIN(varType, varName, funName) \ 
private: varType varName; \ 
public: virtual varType get##funName(void) const { return varName; } \ 
public: virtual void set##funName(varType var) \ 
{ \ 
    if (varName != var) \ 
    { \ 
     CC_SAFE_RETAIN(var); \ 
     CC_SAFE_RELEASE(varName); \ 
     varName = var; \ 
    } \ 
} 

#define CC_SAFE_DELETE(p)   do { if(p) { delete (p); (p) = 0; } } while(0) 
#define CC_SAFE_RELEASE(p)   do { if(p) { (p)->release(); } } while(0) 
#define CC_SAFE_RETAIN(p)   do { if(p) { (p)->retain(); } } while(0) 

例如:

CC_SYNTHESIZE_RETAIN(CCLayer*, m_layer, Layer); 

然后你可以指定m_layersetLayer(new_layer);,并与getLayer()得到它。

而且这个宏只适用于对象扩展CCObject

+1

可以请你解释一下这个简单的例子或者什么的,我们如何在cocos2d-x中完全使用它。 – 2013-09-18 07:18:27

相关问题