天天看點

cocos2d-x-2.2 中的update

    update這個函數,在CCObject中就已經以virtual的方式存在了,是以在cocos2d-x幾乎所有的類裡這個函數都是內建下來了的。開發自己的派生類時,函數命名最好意識到這一點,否則很容易起成一樣的名字,容易造成混淆。

   另外,調用CCNode::scheduleUpdate()時,預設的行為就是每一幀調用這個update()函數。

   是以overide update函數的一個典型場景就是:在自己的派生的layer類的init函數裡調用scheduleUpdate,用update更新遊戲狀态

附update最初的定義代碼如下

class CC_DLL CCObject : public CCCopying

{

public:

    // object id, CCScriptSupport need public m_uID

    unsigned int        m_uID;

    // Lua reference id

    int                 m_nLuaID;

protected:

    // count of references

    unsigned int        m_uReference;

    // count of autorelease

    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;

};