【发布时间】:2018-03-02 06:16:43
【问题描述】:
在与另一个球或窗口边缘发生碰撞后,我需要更改球的方向。 我设法做到了这样的事情:
y += yMove;
x += xMove;
//if the ball moves to the right edge of the window, turn around.
if(x > width - size)
{
x = width - size;
xMove *= -1;
if (xMove > 0) {
xSpeed = xMove + (Math.random() * (1));
}
if (xMove <= 0) {
xSpeed = xMove - (Math.random() * (1));
}
if (yMove > 0) {
ySpeed = yMove + (Math.random() * (1));
}
if (yMove <= 0) {
ySpeed = yMove - (Math.random() * (1));
}
}
其他边也一样。
我正在尝试在球相互碰撞后使用相同的方法来改变球的方向,但它只是不起作用/这很奇怪。谁能帮帮我?
【问题讨论】:
-
为了提供帮助,我们将不得不查看您所做的工作并获得您遇到的错误的具体描述。 “它只是不起作用/很奇怪”是不够的。
-
如果您只是想改变方向,您可以反转增量 (
delta *= -1),然后您只需将delta添加到位置值即可。如果你想根据碰撞角度改变方向,你可以试试something like this example