正文

基 礎(chǔ) 知 識(10)

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


  

從長遠來看,使用_cmd關(guān)鍵字能為你減少很多痛苦,因為它幫助你避免了很多因為選擇器選錯方法而帶來的可怕問題。

關(guān)于調(diào)度,還有最后一個問題要提一下,那就是更新方法的優(yōu)先級。請看以下代碼:

// in Node A

-(void) scheduleUpdates

{

    [self scheduleUpdate];

}

 

// in Node B

-(void) scheduleUpdates

{

    [self scheduleUpdateWithPriority:1];

}

 

// in Node C

-(void) scheduleUpdates

{

    [self scheduleUpdateWithPriority:-1];

}

看懂這段代碼可能要花一點時間。所有節(jié)點都在調(diào)用“– (void) update:(ccTime)delta”方法。但是因為有了優(yōu)先級設(shè)定,所以節(jié)點C中的更新方法是最先被調(diào)用的。接下來是調(diào)用節(jié)點A中的更新方法,因為scheduleUpdate的默認優(yōu)先級為0。最后是節(jié)點B中的更新方法被調(diào)用,因為它的優(yōu)先級最高。更新方法是以優(yōu)先級從低到高的順序被調(diào)用的。

你可以能心存疑惑,什么時候會用到這個優(yōu)先級呢?老實說,它確實不常用,以我多年的經(jīng)驗來看,它會在一些比較少見的情況下發(fā)揮優(yōu)勢,例如,在物理模擬器發(fā)生自動更新前后對某個物理對象施加力的作用。官方文檔對于優(yōu)先級的解釋也能證實我的這個觀點,因為它也提到了物理更新。有時候,通常是在項目開發(fā)后期,你會發(fā)現(xiàn)一些因為計時問題導致的奇怪的bug,要解決問題,必須要在其他所有對象都更新完之后,再對玩家進行更新。

在碰到與更新的優(yōu)先級相關(guān)的問題之前,你可以放心地跳過這段內(nèi)容。

 


上一章目錄下一章

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