kr15hna
kr15hna

Reputation: 539

Calculating time passed in libgdx with getDeltaTime()

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

Answers (1)

kupsef
kupsef

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

Related Questions