I have recently started using Java, but have been programming in javascript, and actionscript 3 for a while.
I am used to the language giving me the ability to simply do something like:
private function Update(){
//stuff
}
or something similar to that.
I am looking for something similar in Java, and I want to make sure I am doing it correctly.
I started following a tutorial, and they said to do something like this:
long lastTime = System.nanoTime();
double amountOfTicks = 60.0;
double ns = 1000000000;
double delta = 0;
long timer = System.currentTimeMillis();
int frames = 0;
while(running){
long now = System.nanoTime();
delta += (now - lastTime) / ns;
lastTime = now;
while(delta >= 1){
tick();
delta--;
}
if(running)
render();
frames++;
if(System.currentTimeMillis() - timer > 1000){
timer += 1000;
System.out.println("FPS: " + frames);
frames = 0;
}
}
This seems to be every second calling the tick() function, not the same as every frame though, and while things tend to happen in less time than a second, I would much rather use the same old frame by frame method i was using. (Unless someone can give me a reason not to, always up for an opinion)
So I am wondering, why not just do something like:
while(running){
Update();
}
I believe this would call every frame. Am I doing something completely crazy here? is there a much better method?
Thanks in advance
tick()
supposed to be doing? \$\endgroup\$