爪哇 - 乒乓球拍和球碰撞错误



>我正在做乒乓球,我已经将球 x cordinate 设置为在它击中球拍时立即反转,并在没有击中球拍时停止。 这段代码在"大部分"时间都有效,但"有时"球一旦碰到球拍就会停止,没有明显的原因。 我能得到的任何提示或提示。 附言我找不到有同样问题的人

下面是代码段:

        //ball bounces on p1's paddle
    if(nextBallLeft < p1RightSide){
        if(ballY > p1Y && ballY < getHeight() - p1Y + paddleHeight){
             ballDeltaX *= -1;
        }
        else{
            System.out.println("1");
            ballDeltaX = 0;
            ballDeltaY= 0;
        }
在某些情况下

,您的球将"进入"球拍,碰撞会使其倒车。在下一个循环中,当它仍在桨内时,它将再次反转。这种模式会永远持续下去,你的球会被卡住。

要解决这个问题,您需要"追踪"球路径并在撞墙之前检测碰撞。通过这种方式,您可以使球的下一步成为到达球拍表面的必要量。

>每当球碰到球拍时,ballDeltax *= -1改变球的方向。

然而,可能发生的情况是,当球接触球拍时,它会改变方向,但由于它仍然接触球拍,它会再次改变方向,从而产生无限循环。

您需要修改程序,以便在它改变方向时,它会在短时间内忽略代码。

最新更新