使用 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);
我正在尝试像这样计算我的 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);