Time Android:在我的主循环中计算时间

Time Android:在我的主循环中计算时间,time,timer,real-time,counter,Time,Timer,Real Time,Counter,我想在我玩游戏的时候,在后台运行一个计数器,这样当玩家存活1分钟时,就会发生一些事情 目前,我正在考虑在开始时获取系统时间(比如在surfaceCreated中),然后在我的物理更新方法中,获取当前时间并比较两者。当60000毫秒过去时,我知道显然1分钟过去了 这是最好的方法吗?还是有其他/更好/更简单的方法 谢谢大家这是个好办法 没有太多其他的选择。在我的游戏中,我有一个秒表,它在帧更新之前停止重置,所以我可以确定做其他事情所花费的时间。然后,每个对象都会按此时间量进行步进 这很好,因为它允许

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

目前,我正在考虑在开始时获取系统时间(比如在surfaceCreated中),然后在我的物理更新方法中,获取当前时间并比较两者。当60000毫秒过去时,我知道显然1分钟过去了

这是最好的方法吗?还是有其他/更好/更简单的方法


谢谢大家

这是个好办法

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

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

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

object.x += speed.x;
那真的应该是

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

如果您正在这样做,最好是让计时器对象在计时器过期时运行(即,它总结了步进时间并在达到60秒时触发)。

嘿,AStupidNoob非常感谢您的响应-我所有的精灵移动都基于增量时间,因此在所有屏幕上运行相同的“速度”,最后,我编写了一个小方法,它实现了我上面所说的功能,但在阅读时使用了SystemClock.elapsedRealtime(),这样做更好!再次感谢:-)