2013-09-30 54 views
0

尋找關於如何實現這一點的一些想法,不一定需要確切的代碼。objective-c中的靜態定時循環cocos2d?

比方說,我有一個遊戲,玩家的生命值顯示在標籤中,比如100HP。當他受到傷害時,說出30點傷害,我希望這個標籤從99,98,97 ... 70倒數。無論你受到30點傷害還是3000點傷害,它都需要2秒鐘來進行倒計時。

我想知道什麼是最有效的方式來讓這個循環在2秒內順利地倒數,不管受到什麼樣的傷害。

回答

1

我可能會擴展一個CCLabelSomething來做到這一點,嵌入所需的行爲。建議一個固定寬度的字體,否則不會有光滑的事情發生(視覺上)。找出'對你來說順利',即2秒內有多少次更新。在假設的'setScore'公共方法中,以適當的延遲開始預定的更新週期。在日程安排回調中,更改標籤的文字。

說20次更新,即每秒10次。在間隔之間延遲.1f延遲。根據setScore,計算每次更新的「增量」(currentScore - newScore)/ 20。按此增量將currentScore降至newScore。在計劃callBack中,如果顯示的分數等於newScore,則停止計劃的更新。