Cocos2d-x结构学习(一)CCObject、CCCopying、CCZone

Cocos2d-x结构学习(一)CCObject、CCCopying、CCZone,第1张

概述1、CCZone类:保存了CCObject的指针。 class CC_DLL CCZone{public: CCZone(CCObject *pObject = NULL);public: CCObject *m_pCopyObject;}; CC_DLL的定义为(动态链接库相关): #if defined(_USRDLL) #define CC_DLL

1、CCZone类:保存了CCObject的指针。

class CC_DLL CCZone{public:    CCZone(CCObject *pObject = NulL);public:    CCObject *m_pcopyObject;};

CC_DLL的定义为(动态链接库相关):

#if defined(_USRDLL)    #define CC_DLL     __declspec(dllexport)#else         /* use a DLL library */    #define CC_DLL     __declspec(dllimport)#endif
2、CCcopying:拷贝CCZone类里的CCObject对象,仅是指针
class CC_DLL CCcopying{public:    virtual CCObject* copyWithZone(CCZone* pZone);};

3、CCObject类:继承自CCcopying类,各成员如下:
class CC_DLL CCObject : public CCcopying{public:    unsigned int        m_uID;             //对象ID,<span >ccScriptSupport需要公共的ID。</span>    int                 m_nLuaID;          //LUA引用ID。protected:    unsigned int        m_uReference;        //引用计数    unsigned int        m_uautoReleaseCount;  //自动释放计数public:    CCObject(voID);    virtual ~CCObject(voID);        voID release(voID);    voID retain(voID);    CCObject* autorelease(voID);    CCObject* copy(voID);    bool isSingleReference(voID) const;    unsigned int retainCount(voID) const;    virtual bool isEqual(const CCObject* pObject);    virtual voID acceptVisitor(CcdataVisitor &visitor);    virtual voID update(float dt) {CC_UNUSED_ParaM(dt);};    frIEnd class CCautoreleasePool;};
CCObject定义的成员函数指针:
typedef voID (CCObject::*SEL_SCHEDulE)(float);typedef voID (CCObject::*SEL_CallFunc)();typedef voID (CCObject::*SEL_CallFuncN)(CCNode*);typedef voID (CCObject::*SEL_CallFuncND)(CCNode*,voID*);typedef voID (CCObject::*SEL_CallFuncO)(CCObject*);typedef voID (CCObject::*SEL_MenuHandler)(CCObject*);typedef voID (CCObject::*SEL_EventHandler)(CCEvent*);typedef int (CCObject::*SEL_Compare)(CCObject*);
CCObject相关的函数宏:
#define schedule_selector(_SELECTOR) (SEL_SCHEDulE)(&_SELECTOR)#define callfunc_selector(_SELECTOR) (SEL_CallFunc)(&_SELECTOR)#define callfuncN_selector(_SELECTOR) (SEL_CallFuncN)(&_SELECTOR)#define callfuncND_selector(_SELECTOR) (SEL_CallFuncND)(&_SELECTOR)#define callfuncO_selector(_SELECTOR) (SEL_CallFuncO)(&_SELECTOR)#define menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)#define event_selector(_SELECTOR) (SEL_EventHandler)(&_SELECTOR)#define compare_selector(_SELECTOR) (SEL_Compare)(&_SELECTOR)
总结

以上是内存溢出为你收集整理的Cocos2d-x结构学习(一)CCObject、CCCopying、CCZone全部内容,希望文章能够帮你解决Cocos2d-x结构学习(一)CCObject、CCCopying、CCZone所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存