Reputation: 539
i am trying to calculate the time passed in my libGDX application like this
float timeSpent= 0;
public void render(){
timeSpent = timeSpent + Gdx.graphics.getDeltaTime();
}
by the above code i feel like the time is almost passing double the normal rate
but if i get delta time directly from java's nano time method like this
float prevTime;
float timeSpent = 0;
public void show(){
prevTime = System.nanoTime();
}
public void render(){
float p = System.nanoTime();
timeSpent += (p-prevTime)/1000000000f;
prevTime = p;
}
it seems to work fine, i know that libgdx also get delta time from subtracting nano time method.
i am not able to figure out what am i doing wrong in the first method.
thank you
Upvotes: 1
Views: 1501
Reputation: 3357
You can calculate the passed time from the start of your application by simply saving a date when it starts, and just subtract it from the current date. No need to accumulate the deltas in each frame.
You can further simplify the code by using TimeUtils:
// save at start
long start = TimeUtils.millis();
// query whenever you want
long diffInMillis = TimeUtils.timeSinceMillis(startTime);
Upvotes: 2