1

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

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

4

2 回答 2

2

你设置一个默认值speed。然后你可以使用x+=speed*cos(theta)and y+=speed*sin(theta)

当被击中时,你应该改变theta.

于 2013-03-17T17:04:44.380 回答
2

所以我们有这样的事情:

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

您基本上想要的是在与 r 而不是 x 相关的距离上迈出一步。

从初等三角:
cos θ = x/r
sin θ = y/r

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

您可以使用r' 值(这基本上是移动速度)。

θ将是球的方向。

于 2013-03-17T17:06:14.250 回答