我觉得这个问题有点傻,但是我找不到答案。
我在玩经典的乒乓游戏。我想让球在任何角度都以相同的速度运动。但是使用我目前的算法(将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
.