performance - 无论方向如何,以恒定速度更新对象的位置

标签 performance algorithm line pong

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

我正在玩经典游戏乒乓球。我希望球在任何角度都以相同的速度运动。但是如果 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/

相关文章:

list - Scala 是否在链式函数中执行优化?

python - 如何评估字符串并将其添加到 numpy 数组元素

java - 如何计算包含一个数字但不包含另一个数字的数字?

linux - 是否可以让vim显示行号?

MATLAB 根据数据绘制动画线图

performance - 使用 foreach 和 %dopar% 将列添加到数据框

performance - 哪些 CPU 状态对 Intel FPU 和 SSE 性能有影响?

c - long int 数组导致错误 : subscripted value is neither array nor pointer nor vector

java - 如何解决 Java 中的 java.lang.ArrayIndexOutOfBoundsException 错误

java - JTextPane 换行符