Java 爪哇-乒乓球拍和球碰撞错误?
我正在打乒乓球,我已经将球x cordinate设置为在球碰到球拍时立即反转,在球没有碰到球拍时停止。此代码在“大多数”情况下都有效,但“有时”球一碰到球拍就停止了,没有明显的原因。任何我能得到的提示。p、 我找不到有同样问题的人 代码段如下:Java 爪哇-乒乓球拍和球碰撞错误?,java,swing,Java,Swing,我正在打乒乓球,我已经将球x cordinate设置为在球碰到球拍时立即反转,在球没有碰到球拍时停止。此代码在“大多数”情况下都有效,但“有时”球一碰到球拍就停止了,没有明显的原因。任何我能得到的提示。p、 我找不到有同样问题的人 代码段如下: //ball bounces on p1's paddle if(nextBallLeft < p1RightSide){ if(ballY > p1Y && ballY < ge
//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;
}
//球在p1的桨上反弹
如果(下一个球左p1Y&&ballY
在这种情况下,您的球将“进入”挡板,碰撞将使其反转。在下一个循环中,当球仍在挡板内时,它将再次反转。这种模式将永远持续,您的球将被卡住
要解决这个问题,你需要“追踪”球的路径,并在撞到墙壁之前检测碰撞。这样你可以使球的下一步达到你的桨表面所需的量。有一种情况下,你的球会“进入”在下一个循环中,当它仍在桨内时,它将再次反转。这种模式将永远持续下去,你的球将被卡住
要解决这一问题,您需要“跟踪”球的路径,并在撞击墙壁之前检测碰撞。这样,您可以使球的下一步达到桨叶表面所需的量。
ballDeltax*=-1
在球碰到桨叶时改变球的方向
然而,可能发生的情况是,当球接触到桨叶时,它会改变方向,但由于它仍然接触到桨叶,它会再次改变方向,从而创建一个无限循环
您需要修改程序,以便当它改变方向时,会在短时间内忽略代码。
ballDeltax*=-1
每当球碰到挡板时,都会改变球的方向
然而,可能发生的情况是,当球接触到桨叶时,它会改变方向,但由于它仍然接触到桨叶,它会再次改变方向,从而创建一个无限循环
您需要修改程序,以便当它更改方向时,会在短时间内忽略代码。这是我之前遇到的错误,但我更改了代码,所以这不会是一个大问题,但感谢您告诉我。@Trobbins我花了一段时间才找到输入错误。.虽然这是我的错误english@RonnieStevenson是的,这个可以这是一个很难解决的问题这是一个我之前遇到的错误,但我更改了代码,所以这不会是一个大问题,但谢谢你告诉我这些。@Trobbins我花了一段时间才找到输入错误..虽然这是我的错误english@RonnieStevenson是的,这可能是一个很难解决的问题。我在这段代码中遇到了两个错误,一个是无限循环,另一个是w由于getHeight()错误,我在这段代码中遇到了两个错误,一个是无限循环,另一个是getHeight()错误