在cocos2dx中进行解除操作的最佳方法

Best method for dealloaction in cocos2dx

本文关键字:操作 最佳 方法 cocos2dx      更新时间:2023-10-16

在Cocos2dx中,哪种方法是解除分配的最佳方法?

  1. 覆盖ccObject的@"release(("方法
  2. 创建一个Distractor

您可以使用已经在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);

然后可以用setLayer(new_layer);分配m_layer,并用getLayer()获得它。

该宏仅适用于对象扩展CCObject