gpt4 book ai didi

java - 如何将 while 循环的每个循环的速度设置为恒定?

转载 作者:行者123 更新时间:2023-12-02 10:01:31 24 4
gpt4 key购买 nike

我有一个 while 循环,它运行我正在开发的简单 2d 游戏的逻辑。在它里面我有很多函数调用,它们的速度似乎在变化,这使得游戏中的球变得很卡顿。我想尝试使每个循环持续相同的时间以消除卡顿。

我试图限制函数调用的数量,但没有成功,因为即使数量最少,它仍然会卡顿。我也尝试过使用pause()来节省时间,但这只会让它变得更慢。

 private void turn() {
Ball ball = new Ball(400, 500);
add(ball);

pause(3000);

while(ball.getCenterY() + ball.getRadius() <= CANVAS_HEIGHT){

ball.updatePosition(1);

wallPaddleCollision(ball);

brickCollision(ball);

if (numberOfBricks == 0) {
System.out.println("You've Won!");
}

pause(1);
}

lives--;

if(lives > 0) {
remove(ball);
turn();
}
else {
loss();
}
}
...
More code in here.
...
}

它应该运行得比这更流畅。有什么建议吗?

最佳答案

这里有多个方面:

  • 理想情况下,您的“worker”方法的编写方式不会在一次循环迭代中执行 5 件事,然后在下一次循环迭代中执行 5000 件事。它们应该是相对“恒定”的。
  • 你无法加快速度。如果有的话,您可以在每个循环的开始和结束时获取 System.currentTimeMillis() 。然后您可以确定“这个循环有点太快了,所以人为地在 50 毫秒内不执行任何操作”。

关于java - 如何将 while 循环的每个循环的速度设置为恒定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55584816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com