[Cocos2D-X] 簡述Cocos2D-X中的內部函數

簡述Cocos2D-X中的內部函數

    雖然,Cocos2D-X 已經火了很長一陣子了。但,還是有很多同學剛剛接觸 Cocos2D-X ,他們對Cocos2D-X 中一些引擎內部的基礎函數,還不是很瞭解,那麼今天我們就來介紹一下這些函數。   

    virtual bool isVisible();    // 是否可見
    virtual void setVisible(bool visible);      // 設置是否可見
    bool isRunning();       // 節點是否允許
    bool isIgnoreAnchorPointForPosition();    // 如果爲真,則節點錨點座標爲(0,0)
    void ignoreAnchorPointForPosition(bool isIgnoreAnchorPointForPosition);     // 設置是否忽略錨點座標
    static CCNode * create(void);       // 創建一個CCNode對象,有自動釋放對象功能
    virtual void onEnter();      // 節點進入舞臺(stage)時的回調函數 
    virtual void onEnterTransitionDidFinish();  // 節點計入舞臺後的回調函數
    virtual void onExit();    // 節點離開舞臺後的回調函數
    virtual void onExitTransitionDidStart();    //節點離開舞臺時的回調函數
    virtual void registerScriptHandler(int nHandler);     // 註冊onEnter、onExit的腳本處理函數,onEnter運行後腳本處理函數自動取消註冊
    virtual void unregisterScriptHandler(void);      // 取消註冊腳本處理函數
    virtual void addChild(CCNode * child);     // 增加子節點,z座標爲0。如果子節點附加到一個運行中的節點,那麼onEnter和onEnterTransitionDidFinish函數將立即被調用
    virtual void addChild(CCNode * child, int zOrder);    // 增加子節點,z座標爲zOrder。如附加到一個運行中節點,同上
    virtual void addChild(CCNode * child, int zOrder, int tag);   // 增加子節點,z座標爲zOrder,tag爲標誌。如附加到運行中節點,同上。
    void removeFromParentAndCleanup(bool cleanup);    // 從父節點中刪除自己,若參數cleanup爲真,同時刪除所有動作和回調函數。若本節點無父節點,則不執行操作
    virtual void removeChild(CCNode* child, bool cleanup);     // 刪除子節點。根據參數cleanup刪除運行中的動作
    void removeChildByTag(int tag, bool cleanup);    // 通過tag值刪除子節點,根據參數cleanup刪除動作
    virtual void removeAllChildrenWithCleanup(bool cleanup);    // 刪除所有子節點,根據參數cleanup刪除動作*/
    CCNode * getChildByTag(int tag);     //根據tag值獲取子節點,返回值是CCNode型
    virtual void reorderChild(CCNode * child, int zOrder);    // 根據參數zOrder對子節點重排序,子節點必須已經被附加至本節點
    virtual void sortAllChildren();    // 在被繪製前對子節點進行排序,而不是在每次增減子節點時排序。除非子節點在同一幀內附加後被刪除,不然不要手動調用此方法
    virtual void cleanup(void);     // 停止所有運行的動作和定時器
    virtual void draw(void);      // 可重載此函數來繪製節點
    virtual void visit(void);     // 遞歸訪問子節點並繪製它們
    CCAction* runAction(CCAction* action);     // 運行指定的動作
    void stopAllActions(void);     // 從運行動作列表中刪除所有動作,即停止所有動作
    void stopAction(CCAction* action);     // 停止指定的動作
    void stopActionByTag(int tag);     // 停止參數tag指定的動作
    CCAction* getActionByTag(int tag);    // 獲取參數tag指定的動作
    unsigned int numberOfRunningActions(void);     // 運行動作的數目,爲運行中的動作數加上定時器計劃將運行的動作數。組合動作如序列動作將被當成一個動作計算。
    bool isScheduled(SEL_SCHEDULE selector);     // 檢測參數selector指定的選擇器是否被計劃定時
    void scheduleUpdate(void);     // 定時調度update方法,其序列號爲0。定時後,每幀將調用一次update方法。序列號越小的定時器越先調度。每個節點只能定時一個update方法。
    void scheduleUpdateWithPriority(int priority);    // 定時調度update選擇器,自定義優先級。每幀將調用一次update選擇器。優先級越小越先調度。每個節點只能定時一個update選擇器。
    void unscheduleUpdate(void);     // 取消定時update
    void schedule(SEL_SCHEDULE selector);     // 定時一個選擇器,每幀調用一次
    void schedule(SEL_SCHEDULE selector, float interval);    // 定時一個自定義選擇器,參數interval爲時間間隔,單位爲秒。若interval爲0,則每幀調用一次(此時推薦使用scheduleUpdate方法)。若選擇器已被定時,則僅更新時間間隔,而不重複定時。
    void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay);  // 重複執行動作repeat+1次,不斷重複則設置repeat爲kCCRepeatForever。參數delay指定動作執行前延遲的時間
    void scheduleOnce(SEL_SCHEDULE selector, float delay);     // 定時一個僅運行一次的選擇器
    void unschedule(SEL_SCHEDULE selector);    // 取消定時一個選擇器
    void unscheduleAllSelectors(void);    // 取消所有定時器,包括update選擇器。動作不受影響
    void resumeSchedulerAndActions(void);    // 恢復所有定時器和動作,被onEnter內部調用
    void pauseSchedulerAndActions(void);    // 暫停所有定時器和動作,被onExit內部調用

    好了,今天就介紹到這裏。如果,大家有什麼不懂的,或者有什麼想學習的,可以直接留言哦。

    CocoStudio 討論學習羣:141444261

    Cocos2D-X  討論學習羣:244959010

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章