tick メソッドを呼び出すゲームループがあります。tick メソッド内では、他の tick メソッドが呼び出されます。プログラム全体を遅くすることなく、input.tick() の呼び出しを遅くするにはどうすればよいですか? tick メソッドのどこかに aを配置Thread.sleep();
すると、プログラム全体が遅くなりますが、それは私が望んでいることではありません。
public void run() {
long lastTime = System.nanoTime();
long timer = System.currentTimeMillis();
final double ns = 1000000000.0 / 60.0;
double delta = 0;
int frames = 0;
int ticks = 0;
while(running){
long now = System.nanoTime();
delta += (now - lastTime) / ns;
lastTime = now;
while(delta >= 1){
tick();
ticks++;
delta--;
}
render();
frames++;
if(System.currentTimeMillis() - timer > 1000){
timer += 1000;
System.out.println(ticks + " tps, " + frames + " fps");
ticks = 0;
frames = 0;
}
}
stop();
}
public void tick(){
input.tick(); // How do I slow down the call to this?
if(gameState){
player.tick();
player.move();
collision();
treeline.move();
obstacleHole.move();
obstacleWolf.move();
coin.move();
coin.tick();
}
}