繁体   English   中英

Java-乒乓球拍和球碰撞的bug?

[英]Java - Pong paddle and ball collision bug?

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

这是代码段:

        //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改变球的方向。

但是,可能发生的情况是,当球碰到球拍时,球会改变方向,但由于球仍在触摸球拍,所以球会再次改变方向,从而形成无限循环。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM