在CCLayer對象的所有子節(jié)點中,最上層的節(jié)點代表了游戲的各個組成部分。其中大多數(shù)都是精靈(sprite)節(jié)點,偶爾也有一些標簽節(jié)點(例如用來顯示游戲分數(shù)的標簽)。菜單節(jié)點和菜單項節(jié)點用于顯示游戲進行時的菜單,玩家可以通過單擊該菜單上的按鈕暫停游戲或者返回游戲主菜單。
細心的讀者可能注意到在圖3-1中,PlayerSprite節(jié)點下還有一個名為PlayerWeaponSprite的節(jié)點。也就是說,PlayerWeaponSprite是從屬于PlayerSprite的。如果PlayerSprite發(fā)生移動、旋轉(zhuǎn)或縮放,那么在不添加任何代碼的情況下,PlayerWeaponSprite也會進行同樣的操作。這就是場景圖的神奇所在:對某個節(jié)點采取的大多數(shù)操作會同時影響到它的所有子節(jié)點。不過,這個特點有時候也會帶來一些比較費解的問題,因為子節(jié)點的位置和旋轉(zhuǎn)角度突然間都與父節(jié)點產(chǎn)生了關(guān)聯(lián),一下子可能會讓人難以適應(yīng)。
我寫了一個名為NodeHierarchy的Xcode項目,讀者可以在隨書源碼中找到它。這個示例向大家展示了層次體系中各個節(jié)點是如何互相影響的。我相信讓你看一下真正的效果,會比我用再多的文字和圖像去解釋要有用多。