平方递增/递减速度

dauxcl2d  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(483)

这是我写的在屏幕上移动正方形的算法,xcenter和ycenter是正方形的中心。speedx是水平方向的速度,垂直方向的速度。

  1. while (true)
  2. {
  3. int keyState = getKeyStates();
  4. // Update the ball's position
  5. xCenter += speedX;
  6. yCenter += speedY;
  7. // Check if the ball hit the bound. 'Reflect' the ball if so.
  8. if (xCenter > xMax)
  9. {
  10. xCenter = xMax;
  11. speedX = -speedX;
  12. }
  13. else if (xCenter < xMin)
  14. {
  15. xCenter = xMin;
  16. speedX = -speedX;
  17. }
  18. if (yCenter > yMax)
  19. {
  20. yCenter = yMax;
  21. speedY = -speedY;
  22. }
  23. else if (yCenter < yMin)
  24. {
  25. yCenter = yMin;
  26. speedY = -speedY;
  27. }

应该用什么算法来提高速度。speedx++,只是在水平方向上增加,因此没有给出期望的结果。
提前谢谢。

kcwpcxri

kcwpcxri1#

您可以很好地按顺序递增/递减这些x,y位置。因为设置一个变量不会移动正方形。但是当你将新的位置应用到动作中时,square会立即转到新的位置。
再来一个建议
当你发现正方形超出了边界,它实际上需要从另一侧出现。手段 if (xCenter > xMax)xCenter = xMin 反之亦然

相关问题