无论方向如何,都以恒定速度更新对象的位置

时间:2013-03-17 16:58:02

标签: performance algorithm line pong

我认为这个问题有点但很愚蠢,但我找不到答案。

我正在做经典的乒乓球比赛。我希望球能以任何角度以相同的速度前进。但是使用我当前的算法(将x递增1并计算y)如果y = ax + b中的a高,则每个像素之间存在大的间隙。我应该使用什么步骤?

2 个答案:

答案 0 :(得分:2)

您设置了默认speed。然后,您可以使用x+=speed*cos(theta)y+=speed*sin(theta)

点击后,您应该更改theta

答案 1 :(得分:2)

所以我们有这样的事情:

  newPoint
  |\
  | \
y |  \ r
  |  θ\
  |-----
     x  oldPoint

你基本上想要的是与r相关的距离,而不是x。

从初级trig:
cos θ = x/r
sin θ = y/r

所以newX = oldX + r * cos θ
newY = oldY + r * sin θ

你可以玩r的值(这基本上就是移动的速度)。

θ将成为球的方向。