3.4 CCNode類層次體系
所有節(jié)點都有一個公共父節(jié)點類——CCNode,它定義了除節(jié)點顯示外的多數(shù)公共屬性和方法。圖3-2顯示了從CCNode繼承的一些最重要的類,將來你會經(jīng)常使用這些類。而且,即使只用這些類,也能制作出非常出色的游戲。
3.5 CCNode類
CCNode是所有節(jié)點的基類。它是一個沒有具體顯示的抽象類,僅用于定義所有節(jié)點的公共屬性和方法。
3.5.1 節(jié)點的處理方式
CCNode類實現(xiàn)了添加、獲取以及刪除子節(jié)點的所有方法。下面列舉了一些針對子節(jié)點的處理方式:
創(chuàng)建新節(jié)點:
CCNode* childNode = [CCNode node];
把新建節(jié)點添加為子節(jié)點:
[myNode addChild:childNode z:0 tag:123];
獲取子節(jié)點:
CCNode* retrievedNode = [myNode getChildByTag:123];
利用標記刪除子節(jié)點;參數(shù)“cleanup”將令所有正在運行的動作(action)停止:
[myNode removeChildByTag:123 cleanup:YES];
利用指針刪除節(jié)點:
[myNode removeChild:retrievedNode];
刪除某個節(jié)點的所有子節(jié)點:
[myNode removeAllChildrenWithCleanup:YES];
將某個節(jié)點從其父節(jié)點中刪除:
[myNode removeFromParentAndCleanup:YES];
addChild方法中的參數(shù)“z”決定了節(jié)點的繪制順序。首先繪制z值最低的節(jié)點,最后繪制z值最高的節(jié)點。如果多個節(jié)點擁有相同的z值,就按照添加它們的先后順序進行繪制。當然,這只對有具體顯示的節(jié)點(比如精靈)有效果。
tag參數(shù)保證了你在使用getChildByTag方法時能夠區(qū)分并獲取特定節(jié)點。