Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇-乒乓球拍和球碰撞错误?_Java_Swing - Fatal编程技术网

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

Java 爪哇-乒乓球拍和球碰撞错误?,java,swing,Java,Swing,我正在打乒乓球,我已经将球x cordinate设置为在球碰到球拍时立即反转,在球没有碰到球拍时停止。此代码在“大多数”情况下都有效,但“有时”球一碰到球拍就停止了,没有明显的原因。任何我能得到的提示。p、 我找不到有同样问题的人 代码段如下: //ball bounces on p1's paddle if(nextBallLeft < p1RightSide){ if(ballY > p1Y && ballY < ge

我正在打乒乓球,我已经将球x cordinate设置为在球碰到球拍时立即反转,在球没有碰到球拍时停止。此代码在“大多数”情况下都有效,但“有时”球一碰到球拍就停止了,没有明显的原因。任何我能得到的提示。p、 我找不到有同样问题的人

代码段如下:

        //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()错误