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

时间:2015-11-05 07:10:04

标签: java android libgdx nanotime

我正在尝试计算我的libGDX应用程序中传递的时间,如此

 float timeSpent= 0;

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

}

通过上面的代码我感觉时间几乎是正常率的两倍

但如果我直接从java的纳米时间方法得到delta时间,就像这样

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也可以减去增量时间 纳米时间法。

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

谢谢

1 个答案:

答案 0 :(得分:2)

您只需在启动时保存日期,然后从当前日期中减去日期即可计算应用程序启动时的通过时间。无需在每个帧中累积增量。

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

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

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