能夠看到CCNode 幾乎是遊戲中處理的大部分類的父類,其主要有如下函數:node
virtual int getZOrder (void) //獲取節點的順序算法
virtual const CCPoint & getPosition (void) //獲取節點的位置函數
virtual void setPosition (const CCPoint &var) //設置節點的位置動畫
virtual CCArray * getChildren (void) //獲取其全部子節點ui
virtual CCCamera * getCamera (void)//獲取其對應的攝像機url
virtual bool getIsVisible (void) //判斷節點是否可見spa
virtual void setIsVisible (bool var) //設置節點可見性3d
virtual const CCPoint & getAnchorPoint (void) //獲取節點的錨點的位置指針
virtual void setAnchorPoint (const CCPoint &var) //設置節點的錨點位置
virtual bool getIsRunning (void) //判斷節點是否在運行
virtual CCNode * getParent (void)//獲取父及節點指針
virtual void setParent (CCNode *var) //設置節點的父節點
virtual int getTag (void) //獲取節點的tag
virtual void setTag (int var) //設置節點的tag
char * description (void) //返回節點的描述
virtual void onEnter () //進入節點時的回調函數
virtual void onEnterTransitionDidFinish ()//進入節點後的回調函數
virtual void onExit ()//離開節點時的回調函數
virtual void addChild (CCNode *child)//增長節點
virtual void addChild (CCNode *child, int zOrder) //經過順序添加節點
virtual void addChild (CCNode *child, int zOrder, int tag)//經過順序和tag添加節點
void removeFromParentAndCleanup (bool cleanup)//刪除父節點中的當前節點並清除動做及回調函數
virtual void removeChild (CCNode *child, bool cleanup) //刪除節點
void removeChildByTag (int tag, bool cleanup)//經過tag刪除節點
virtual void removeAllChildrenWithCleanup (bool cleanup)//刪除節點並清除動做及回調函數
CCNode * getChildByTag (int tag)//經過tag獲取節點
virtual void reorderChild (CCNode *child, int zOrder)//根據order從新排序
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)//正在運行的動做的總數
void schedule (SEL_SCHEDULE selector)//定義一個定時器
void schedule (SEL_SCHEDULE selector, ccTime interval)//定義一個定時器
void unschedule (SEL_SCHEDULE selector)//取消一個定時器
void unscheduleAllSelectors (void)//取消全部定時器
void resumeSchedulerAndActions (void)//恢復定時器和動做
void pauseSchedulerAndActions (void)//暫停定時器和動做
static CCNode * node (void)//生成一個節點
CCNode是cocos2d-x的渲染鏈,寫遊戲基本上就是和他打交道了,cocos2d-x同時只能渲染一個CCScene,所以CCScene是渲染的根節點。在構建遊戲時,通常是一個Scene中添加一個或者多個CCLayer,一個Layer中又添加多個CCSprite或者CCMenu,CCSprite中還能夠添加CCParticleSystem等等。這樣就構建了一個渲染樹,cocos2d-x歷遍這個樹來將圖像顯示在屏幕上。
coco2d-x的渲染其實是調用visit()函數來完成的:即visit()這個函數調用它包含的Child的zOrder<0的visit()函數,以後調用draw()函數,再調用Child的zOrder>=0的visit()函數,它其實是一個深度優先的算法。他的Child是按照zOrder排序的,以保證渲染的正確性。draw()的做用是繪製本身。在CCSprite這些確實須要繪製的類中,draw()調用openGL的函數來完成繪製功能——把一個紋理映射到一個矩形上。
若是要自定義繪製一些圖像,能夠重寫draw()函數,不過不要忘記調用父類的draw()函數。
能夠進行網狀關係的管理,其實CCScene,CCLayer也是一個CCNode.它提供節點增刪,包含,提供節點縮放,每一個節點有一個照相機,提供動畫支持,也就是說每個從CCNode派生的類均可以執行動畫操做;