我认为这个问题有点但很愚蠢,但我找不到答案。
我正在做经典的乒乓球比赛。我希望球能以任何角度以相同的速度前进。但是使用我当前的算法(将x递增1并计算y)如果y = ax + b中的a高,则每个像素之间存在大的间隙。我应该使用什么步骤?
答案 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
的值(这基本上就是移动的速度)。
θ
将成为球的方向。