我有一个问题,但我不知道该如何描述它,所以我画了一张图。
正如你看到的,当检测到碰撞时,球会反弹。不要在意角度-我只是这样画的。 但有时候球会穿过球拍,并离开另一边。
为什么会这样?因为当我检测到碰撞时,我将vx更改为-vx。那么在这种情况下应该怎么办?也更改y吗?但是如何检查球打到球拍的哪一侧?
或许有其他想法?
这对于编写乒乓球克隆游戏的人来说是一个很常见的问题。解决方案是,在检测到碰撞时,不仅要反转速度,还要改变球的位置,以便它不会与挡板相交。
否则,球可能会被卡在挡板内部,每一帧都不断地抵消vx = -vx = vx = -vx。 直到它的y动量将其移动到足够高或低的位置才能逃脱。
你的精彩绘图向我展示了你没有检测到垂直碰撞。你应该对y坐标做与x坐标相同的处理。