0

我想在玩我的游戏时在后台运行一个计数器,这样当玩家存活 1 分钟时,就会发生一些事情。

目前,我正在考虑通过在启动时获取系统时间(比如在surfaceCreated中)然后在我的物理更新方法中获取当前时间并比较两者来做到这一点。当 60,000 毫秒过去时,我知道显然已经过去了 1 分钟。

这是最好的方法吗?还是有另一种/更好/更简单的方法。

谢谢大家

4

1 回答 1

1

这是一个很好的方法。

没有太多其他选择。在我的游戏中,我有一个秒表,它会在帧更新之前停止重置,所以我可以确定花在做其他事情上的时间量。然后,每个对象都以这段时间步进。

这很好,因为它允许我以相对于时间而不是帧速率的速度移动每个对象,所以如果不同设备上的帧速率不同,物体仍然以相同的速度移动。

如果你不这样做,你真的应该这样做。如果您的步骤函数看起来像

object.x += speed.x;

那么它真的应该是

object.x += speed.x (in units/s) * step_time (in ms) / 1000.0

如果您正在这样做,最好只创建一个在计时器到期时运行 Runnable 的计时器对象(即,它汇总步骤时间并在达到 60 秒时触发)。

于 2013-01-05T02:46:28.147 回答