簡體   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