cocos2d-x學習筆記-CCNode

cocos2d-x學習筆記-CCNode 10-27 cocos2d-x Alex Zhou 10,719前面用cocos2d-x完成了一個簡單的demo,已經對使用cocos2d-x開發遊戲有了一個大概的認識,現在來學習cocos2d-x中的常用類CCNode。學習cocos2d-x應該先了解它的整體結構,從大方向出發再逐步掌握細節問題,分而治之。cocos2d-x的類採用的是樹狀繼承的方式,CCNode類是一個比較核心的類,下圖是類結構圖:CCObject類是cocos2d-x中所有對象的基類,可以理解成java中的Object類,它封裝了對象的引用計數和自動釋放功能。從上圖可知,CCNode是場景、層、菜單、精靈等所有節點的父類,而我們在使用cocos2d-x開發遊戲時,接觸的最多的就是場景、層、精靈這些東東,所以擒賊先擒王,下面就來了解一下CCNode內部包含的主要函數,在後期開發中會經常使用這些函數。//獲取節點的順序,ZOrder:節點的Z軸,當有多個節點在屏幕顯示時,引擎會根據它們Z軸的大小決定繪製順序,Z軸大的會蓋住Z軸小的virtual int getZOrder(void)//獲取節點的位置(x,y)virtual const CCPoint& getPosition(void)//設置節點的位置virtual void setPosition(const CCPoint &var)//獲取其對應的攝像機,因爲cocos2d-x是通過3D方式繪製2D效果的virtual CCCamera* getCamera(void)//判斷節點是否可見virtual bool getIsVisible(void)//設置節點可見性virtual void setIsVisible(bool var)//獲取節點的錨點的位置virtual const CCPoint& getAnchorPoint(void)//設置節點的錨點位置virtual void setAnchorPoint(const CCPoint &var)//獲取節點的尺寸,無論節點時縮放還是旋轉,尺寸不變。層和場景的尺寸是屏幕的大小virtual const CCSize& getContentSize(void)//設置節點的尺寸virtual void setContentSize(const CCSize &var)//判斷節點是否在運行virtual bool getIsRunning(void)//獲取父節點virtual CCNode* getParent(void)//獲取節點的tagvirtual int getTag(void)//設置節點的tagvirtual void setTag(int var)//創建和初始化一個節點,該節點會自動釋放static CCNode * node(void);//節點開始進入舞臺時執行virtual void onEnter();//節點進入舞臺後執行virtual void onEnterTransitionDidFinish();//節點離開舞臺時執行virtual void onExit();//添加子節點,z-order默認值爲0virtual void addChild(CCNode * child);//添加子節點,指定z-order值virtual void addChild(CCNode * child, int zOrder);//添加子節點,指定z-order值和tagvirtual void addChild(CCNode * child, int zOrder, int tag);//從父節點中刪除當前節點,如果cleanup爲true則清除當前節點的所有動作及回調函數;如果當前節點沒有父節點則什麼也不做void removeFromParentAndCleanup(bool cleanup);//刪除指定節點,如果cleanup爲true則清除指定節點的所有動作virtual void removeChild(CCNode* child, bool cleanup);//通過tag刪除節點,如果cleanup爲true則清除該節點的所有動作void removeChildByTag(int tag, bool cleanup);//刪除所有子節點,如果cleanup爲true則清除節點的所有動作virtual void removeAllChildrenWithCleanup(bool cleanup);//通過tag獲取節點CCNode * getChildByTag(int tag);//重新給指定節點的zOrder賦值virtual void reorderChild(CCNode * child, int zOrder);//清除所有動作及任務調度函數virtual void cleanup(void);//繪製節點自己virtual void draw(void);//遞歸visit和draw子節點virtual void visit(void);//返回節點對象的矩形框(由座標和寬高組合而成)CCRect boundingBox(void);//執行動作CCAction* runAction(CCAction* action);//停止所有的動作void stopAllActions(void);//從動作序列中刪除指定動作void stopAction(CCAction* action);//通過tag刪除動作void stopActionByTag(int tag);//通過tag獲取動作CCAction* getActionByTag(int tag);//執行節點的update函數,每幀都執行void scheduleUpdate(void);//取消執行節點的update函數void unscheduleUpdate(void);//定義一個定時器,每幀調用一次指定函數void schedule(SEL_SCHEDULE selector);//定義一個定時器,可以每隔一定的時間調用一次指定函數void schedule(SEL_SCHEDULE selector, ccTime interval);//取消一個定時器void unschedule(SEL_SCHEDULE selector);//取消所有定時器,包括scheduleUpdate,不影響動作void unscheduleAllSelectors(void);//恢復所有定時器和動作void resumeSchedulerAndActions(void);//暫停所有定時器和動作void pauseSchedulerAndActions(void); 上一篇 下一篇版權屬於: Alex Zhou的BLOG原文地址: http://codingnow.cn/cocos2d-x/765.html轉載時必須以鏈接形式註明原始出處及本聲明。
發佈了22 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章