jef*_*yer 29
对于编写乒乓克隆的人来说,这是一个非常普遍的问题.解决方案是,在检测到碰撞时,不仅反转速度而且改变球的位置,使其不与桨叶相交.
否则球可能会卡在桨内,每帧都不断地否定vx = -vx = vx = -vx.它不会离开桨,直到它的y动量向上或向下移动足够远以逃脱.
Lig*_*ica 10
许多事情可能导致问题.
值得注意的是,如果球每个"刻度"或"帧"可以行进多于一个像素,则在检测到碰撞时它可以与桨叶相交更多的像素.
然后通过改变其速度反转球从球拍上反弹,但是根据新的角度,球可能需要几帧才能完全离开球拍.所以,在下一个刻度线上,它仍然相交,你再次逆转速度.这种奇怪的发生很可能导致球最终离开另一侧的球拍,似乎直接飞过.
当首次检测到交叉点时,您可能希望在该球拍组合上放置"暂时不碰撞"标记.
作为一个相关的问题,如果球的速度足够快(特别是当它x的组件最高时,就像球几乎完全水平行进,所以桨的最小部分通过),可能在事实上,没有球与球在物理上相交的球.
这一切都取决于您的代码,我们无法看到.但是,希望上面的内容可以给你一些想法.