Cocos2d-x结构学习(一)CCObject、CCCopying、CCZone
发布时间:2020-12-14 20:40:41 所属栏目:百科 来源:网络整理
导读: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
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) #endif2、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 style="font-family: Arial,Helvetica,sans-serif;">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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |