我正在做一个乒乓球比赛,我正在研究移动球的机制。如果我在 x 上加 1,球向右移动 1 个像素,如果我在 y 上加 1,球向底部移动 1 个像素。如果我想以某个角度移动球怎么办 1 如何计算坐标。
问问题
680 次
4 回答
2
尝试使用角度会变得比您需要的要复杂一些。对于这种动画,您通常希望使用浮点数来存储对象的 x 和 y 坐标并通过应用 x 和 y 增量来移动它(浮点数将保留在屏幕上绘制时由于舍入而丢失的位置细节)。增量表示您的对象在每个轴上移动的速度,可以是负数或正数。
对于动画的每次迭代,将 xdelta 添加到 x 坐标并将 ydelta 添加到 y 坐标。将它们四舍五入以将它们定位在屏幕上。
当您点击顶部或底部边框时,您将交换 ydelta 组件上的符号,同样交换侧边框。
您不希望始终保持相同的 x 和 y 增量,因此当物体碰到桨时,稍微修改 x 或 y 增量以改变角度。
于 2009-04-14T12:50:04.803 回答
1
你正在寻找线条绘制算法,比如 Bresenham 或 DDA 你可以在这里找到一些合理的实现当然不是画一条完整的线你会沿着这条线移动你的球但是找到要移动的线集的方式是相同的.
于 2009-04-14T12:36:28.470 回答
1
您可能会发现这些资源很有帮助。
于 2009-04-14T12:37:33.397 回答
1
对于像 Pong 这样的东西,您应该研究矢量数学,但是如果您只想知道一个角度,那么您真正需要的就是SOHCHAHTOA。
于 2009-04-14T12:44:47.013 回答