我觉得这个问题有点傻,但是我找不到答案。
我正在玩经典游戏乒乓球。我希望球在任何角度都以相同的速度运动。但是如果 y=ax+b 中的 a 很高,那么使用我当前的算法(将 x 递增 1 并计算 y),每个像素之间就会有很大的差距。我应该使用什么步骤?
最佳答案
所以我们有这样的东西:
newPoint
|\
| \
y | \ r
| θ\
|-----
x oldPoint
您基本上想要的是在与 r 而不是 x 相关的距离上迈出一步。
来自初级三角:
cos θ = x/r
和 sin θ = y/r
所以 newX = oldX + r * cos θ
和 newY = oldY + r * sin θ
您可以使用 r
的值(这基本上就是移动速度)。
θ
将是球的方向。
关于performance - 无论方向如何,以恒定速度更新对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463495/