De nombreux jeux java utilisent thread.sleep () pour contrôler les fps. Étant donné que le serveur n'affiche pas de graphiques, la boucle de jeu du serveur doit-elle continuer à fonctionner uniquement en calculant le temps delta? Comme cet exemple:
long lastLoopTime = System.nanoTime();
final int TARGET_FPS = 60;
final long OPTIMAL_TIME = 1000000000 / TARGET_FPS;
while (gameRunning)
{
long now = System.nanoTime();
long updateLength = now - lastLoopTime;
lastLoopTime = now;
double delta = updateLength / ((double)OPTIMAL_TIME);
doGameUpdates(delta);
}
Thread.Sleep
est le moyen le plus simple, certains pourraient attendre des interruptions du système d'exploitation. Vous pouvez même compter vSync comme un mécanisme de sommeil.