2013-09-30 32 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,则停止计划的更新。