不论方向如何,以恒定速度更新物体的位置



我觉得这个问题有点傻,但是我找不到答案。

我在玩经典的乒乓游戏。我想让球在任何角度都以相同的速度运动。但是使用我目前的算法(将x增加1并计算y),如果y=ax+b中的a很高,那么每个像素之间就会有很大的间隙。我应该使用哪一步?

所以我们有这样的内容:

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

你要做的基本上是在距离上与r相关的一步,而不是x。

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

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

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

θ为球的方向

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

当点击

时,你应该改变theta .

最新更新