我正在尝试计算我的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也可以减去增量时间 纳米时间法。
我无法弄清楚在第一种方法中我做错了什么。
谢谢
答案 0 :(得分:2)
您只需在启动时保存日期,然后从当前日期中减去日期即可计算应用程序启动时的通过时间。无需在每个帧中累积增量。
您可以使用TimeUtils进一步简化代码:
// save at start
long start = TimeUtils.millis();
// query whenever you want
long diffInMillis = TimeUtils.timeSinceMillis(startTime);