2009-04-14 119 views
0

我正在研究pong游戏,并且正在研究移动球的机制。如果我给x加1,球就向右移动1个像素,如果我给y加1,球就会向下移动1个像素。如果我想以某个角度移动球,那么如何计算坐标。在JPanel中移动项目

回答

2

尝试使用角度将会比你需要得到更复杂一点。对于这种动画,您通常希望使用浮点数来存储对象的x和y坐标,并通过应用x和y角度来移动它(浮点数将保留在屏幕上绘制时四舍五入的位置细节)。增量表示物体在每个轴上移动的速度,可以是负值或正值。

对于动画的每次迭代,将xdelta添加到x坐标并将ydelta添加到y坐标。将它们四舍五入以将它们放置在屏幕上。

当您点击顶部或底部边框时,您可以交换ydelta组件上的标志,同样也可以更换侧边框。

您不希望始终保持相同的x和y增量,因此当物体碰到桨时,稍微修改x或y增量以改变角度。

1

您正在寻找线条绘制算法,类似于Bresenham或DDA,您可以找到一些合理的实现方法,而不是绘制完整的线条,而是沿着该线条移动球,但找到要移动的一组线条的方式上是一样的。

1

对于像Pong这样的东西,你应该研究矢量数学,但如果你想要的只是知道一个角度,你真正需要的是SOHCAHTOA