【问题标题】:How to get delta in java?如何在Java中获得增量?
【发布时间】:2015-01-16 02:27:32
【问题描述】:

我正在用 Java 制作游戏,我想知道如何获得增量时间,以便以正确的速度渲染图像等?我的代码不起作用,循环打印出来的时候返回的都是0。

public static long getTime() {
    return (Sys.getTime() * 1000) / Sys.getTimerResolution();
}

public static int getDelta() {
    long time = getTime();
    int delta = (int) (time - lastFrame);
    lastFrame = time;

    return delta;
}

【问题讨论】:

  • @Cairnarvon 不。这与网络或查看它运行了多长时间无关,我想确保图像的更新在其他系统上不会更快,反之亦然。

标签: java jframe lwjgl delta


【解决方案1】:

如果你使用 System.nanoTime() 它应该可以工作

此方法只能用于测量经过的时间,您需要除以 100 万才能获得经过的毫秒数。

【讨论】:

  • 到目前为止,这是有效的,如果需要,有没有办法减慢它的速度?我正在使用代码 sn-p Main.creeperX += 1 * Main.getDelta() 并且速度很快?有什么办法可以减慢速度?
  • 此外,当打印 x 时,delta 似乎会更高,因为它在一秒钟内从正常的 1000-2000(当不减速时)变为 10,000-70,000,或者控制台运行得如此之快打印时滞后。
猜你喜欢
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 2017-03-30
  • 2022-06-10
相关资源
最近更新 更多