我想在玩我的游戏时在后台运行一个计数器,这样当玩家存活 1 分钟时,就会发生一些事情。
目前,我正在考虑通过在启动时获取系统时间(比如在surfaceCreated中)然后在我的物理更新方法中获取当前时间并比较两者来做到这一点。当 60,000 毫秒过去时,我知道显然已经过去了 1 分钟。
这是最好的方法吗?还是有另一种/更好/更简单的方法。
谢谢大家
这是一个很好的方法。
没有太多其他选择。在我的游戏中,我有一个秒表,它会在帧更新之前停止重置,所以我可以确定花在做其他事情上的时间量。然后,每个对象都以这段时间步进。
这很好,因为它允许我以相对于时间而不是帧速率的速度移动每个对象,所以如果不同设备上的帧速率不同,物体仍然以相同的速度移动。
如果你不这样做,你真的应该这样做。如果您的步骤函数看起来像
object.x += speed.x;
那么它真的应该是
object.x += speed.x (in units/s) * step_time (in ms) / 1000.0
如果您正在这样做,最好只创建一个在计时器到期时运行 Runnable 的计时器对象(即,它汇总步骤时间并在达到 60 秒时触发)。