0

寻找一些关于如何实现这一点的想法,不一定需要确切的代码。

假设我有一个游戏,其中玩家的生命值显示在一个标签中,比如 100HP。当他受到伤害时,比如 30 伤害,我希望该标签从 99、98、97 ... 70 倒计时。无论您受到 30 伤害还是 3000 伤害,都需要 2 秒来执行倒计时。

我想知道让这个循环在 2 秒内“顺利”倒计时的最有效方法是什么,无论受到的伤害是多少。

4

1 回答 1

1

我可能会扩展一个 CCLabelSomething 来做到这一点,嵌入所需的行为。建议使用固定宽度的字体,否则不会发生任何平滑(视觉上)。弄清楚什么是“对你来说很顺利”,即在 2 秒内有多少更新。在假定的“setScore”公共方法中,以适当的延迟开始计划的更新周期。在调度回调中,更改标签的文本。

比如说 20 次更新,即每秒 10 次。计划间隔之间有 0.1f 的延迟。根据 setScore,计算每次更新的“增量”(currentScore - newScore)/20。按此增量将 currentScore 减至 newScore。在计划回调中,如果显示的分数等于 newScore,则停止计划的更新。

于 2013-09-30T15:56:55.057 回答