>我正在做乒乓球,我已经将球 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
改变球的方向。
然而,可能发生的情况是,当球接触球拍时,它会改变方向,但由于它仍然接触球拍,它会再次改变方向,从而产生无限循环。
您需要修改程序,以便在它改变方向时,它会在短时间内忽略代码。