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