正文

基 礎(chǔ) 知 識(10)

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


  

從長遠(yuǎn)來看,使用_cmd關(guān)鍵字能為你減少很多痛苦,因?yàn)樗鼛椭惚苊饬撕芏嘁驗(yàn)檫x擇器選錯方法而帶來的可怕問題。

關(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];

}

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

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

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

 


上一章目錄下一章

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