使用 getDeltaTime() 计算传入 libgdx 的时间

Calculating time passed in libgdx with getDeltaTime()

我正在尝试像这样计算我的 libGDX 应用程序中经过的时间

 float timeSpent= 0;

public void render(){
  timeSpent = timeSpent + Gdx.graphics.getDeltaTime();

}

通过上面的代码,我觉得时间几乎是正常速度的两倍

但是如果我像这样直接从 java 的纳米时间方法中获得增量时间

float prevTime;
float timeSpent = 0;
public void show(){
   prevTime = System.nanoTime();
}
public void render(){
   float p = System.nanoTime(); 
   timeSpent  += (p-prevTime)/1000000000f;
   prevTime = p;
}

它似乎工作正常,我知道 libgdx 也可以从减法中获得增量时间 纳米时间法。

我无法弄清楚我在第一种方法中做错了什么。

谢谢

您可以通过简单地在应用程序开始时保存一个日期,然后从当前日期中减去它来计算从应用程序开始经过的时间。无需累加每一帧的增量。

您可以使用 TimeUtils 进一步简化代码:

// save at start
long start = TimeUtils.millis();

// query whenever you want
long diffInMillis = TimeUtils.timeSinceMillis(startTime);