0
В Cocos2dx, который является лучшим методом для освобождения?Лучший способ дезактивации в cocos2dx
- Override @ "release()" метод ccObject.
- Создать Distructor.
В Cocos2dx, который является лучшим методом для освобождения?Лучший способ дезактивации в cocos2dx
Вы можете использовать макрос, уже определенный в 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_layer
с setLayer(new_layer);
, и получить его с getLayer()
.
И этот макрос работает только для расширения объекта CCObject
.
Не могли бы вы объяснить это вкратце некоторым примером или чем-то, как мы это используем в cocos2d-x. –