正文

基 礎(chǔ) 知 識(shí)(5)

iPhone & iPad Cocos2D游戲開發(fā)實(shí)戰(zhàn) 作者:(美)伊特海姆


3.4  CCNode類層次體系

所有節(jié)點(diǎn)都有一個(gè)公共父節(jié)點(diǎn)類——CCNode,它定義了除節(jié)點(diǎn)顯示外的多數(shù)公共屬性和方法。圖3-2顯示了從CCNode繼承的一些最重要的類,將來你會(huì)經(jīng)常使用這些類。而且,即使只用這些類,也能制作出非常出色的游戲。

3.5  CCNode類

CCNode是所有節(jié)點(diǎn)的基類。它是一個(gè)沒有具體顯示的抽象類,僅用于定義所有節(jié)點(diǎn)的公共屬性和方法。

3.5.1  節(jié)點(diǎn)的處理方式

CCNode類實(shí)現(xiàn)了添加、獲取以及刪除子節(jié)點(diǎn)的所有方法。下面列舉了一些針對(duì)子節(jié)點(diǎn)的處理方式:

創(chuàng)建新節(jié)點(diǎn):

CCNode* childNode = [CCNode node];

把新建節(jié)點(diǎn)添加為子節(jié)點(diǎn):

[myNode addChild:childNode z:0 tag:123];

獲取子節(jié)點(diǎn):

CCNode* retrievedNode = [myNode getChildByTag:123];

利用標(biāo)記刪除子節(jié)點(diǎn);參數(shù)“cleanup”將令所有正在運(yùn)行的動(dòng)作(action)停止:

 

[myNode removeChildByTag:123 cleanup:YES];

 

利用指針刪除節(jié)點(diǎn):

[myNode removeChild:retrievedNode];

刪除某個(gè)節(jié)點(diǎn)的所有子節(jié)點(diǎn):

[myNode removeAllChildrenWithCleanup:YES];

將某個(gè)節(jié)點(diǎn)從其父節(jié)點(diǎn)中刪除:

[myNode removeFromParentAndCleanup:YES];

addChild方法中的參數(shù)“z”決定了節(jié)點(diǎn)的繪制順序。首先繪制z值最低的節(jié)點(diǎn),最后繪制z值最高的節(jié)點(diǎn)。如果多個(gè)節(jié)點(diǎn)擁有相同的z值,就按照添加它們的先后順序進(jìn)行繪制。當(dāng)然,這只對(duì)有具體顯示的節(jié)點(diǎn)(比如精靈)有效果。

tag參數(shù)保證了你在使用getChildByTag方法時(shí)能夠區(qū)分并獲取特定節(jié)點(diǎn)。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)