我正在打乒乓球,我将球x坐标设置为一旦击中桨便反转,并在未击中桨时停止。该代码在大多数情况下都有效,但是“有时”只要没有明显的原因,只要碰到球拍,球就会停止。我可以得到的任何提示或提示。 ps。我找不到任何人遇到同样的问题

这是代码段:

        //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;

        }

最佳答案

在某些情况下,您的球会“进入”球拍,而碰撞会使球反转。在下一个循环中,当它仍然位于桨中时,它将再次反转。这种模式将永远持续下去,您的球将被卡住。

为了解决这个问题,您需要在跟踪墙壁之前“追踪”球的路径并检测碰撞。这样,您就可以使球的下一步成为到达球拍表面所需的量。

07-24 09:38
查看更多