在JPanel中移动项目

时间:2009-04-14 12:29:03

标签: math jpanel

我正在进行一场乒乓球比赛,我正在研究移动球的机制。如果我向x添加1,则球向右移动1个像素,如果我向y添加1,则球移动1个像素到底部。如果我想以某个角度移动球怎么能计算坐标怎么办。

4 个答案:

答案 0 :(得分:2)

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

对于动画的每次迭代,将xdelta添加到x坐标并将ydelta添加到y坐标。围绕它们将它们放在屏幕上。

当您点击顶部或底部边框时,您将交换ydelta组件上的符号,同样替换侧边框。

您不希望始终保持相同的x和y delta,因此当对象击中球拍时,稍微修改x或y delta以更改角度。

答案 1 :(得分:1)

你正在寻找线绘制算法,比如Bresenham或DDA,你可以找到一些合理的实现here,而不是绘制一条完整的线,你会沿着那条线移动你的球,但找到一套继续前进的行是一样的。

答案 2 :(得分:1)

您可能会发现these resources有帮助。

答案 3 :(得分:1)

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