2017-10-17 108 views
1

我已經在JS中寫了一個簡單的pong遊戲,但我無法強制球在接觸槳時改變它的方向。我插入了我的實際的beatControl funtcion。無法在我的JS Pong遊戲中擊敗一個球

function beatControl() { 

if (ballX + ballSize >= xAiPosition) { 
    ballSpeedX = -ballSpeedX; 
    //console.log(ballX); 
} else if (ballX == xPosition + paddleWidth) { 
    ballSpeedX = -ballSpeedX; 
    // console.log(ballX); 
} 

}

Here's the link to my game

+0

只是一個建議,你應該考慮使用對象爲你的遊戲。你會有一個槳對象和一個球對象,它更容易管理,而且當你製造更復雜的東西時,對象會派上用場。檢查這個項目的源代碼的例子,使用對象 - http://betaio.bitballoon.com/ –

+1

謝謝賈裏德,這是我的第一個項目,所以它可能看起來不專業:) – Matthew

+0

是的,那乒乓遊戲實際上是我也創造了第一場比賽。如果您想要任何建議,請隨時在此處通知我。 –

回答

0

這是我在一個JS乒乓球比賽,我提出用一個例子碰撞。首先檢查它是否足夠遠到右側或左側,如果是,則檢查槳是否也在正確的Y值內以擊球。你可以在這裏查看我的源代碼 - http://pongio.bitballoon.com/

//Ball hits left paddle 
    if (ball.x<=paddleLeft.width+ball.r && ball.y>=paddleLeft.y && ball.y<=paddleLeft.y+paddleLeft.height) { 
     ball.velX = -ball.velX; 
    } 
    //Ball hits right paddle 
    else if (ball.x>=canvas.width-(paddleLeft.width+ball.r) && ball.y>=paddleRight.y && ball.y<=paddleRight.y+paddleRight.height) { 
     ball.velX = -ball.velX; 
    } 
0

球被彈回槳錯誤的結束。

問題是此行

else if (ballX == xPosition + paddleWidth) 

應該

else if (ballX <= xPosition + paddleWidth) 
+0

謝謝你,但是現在球從符合你發佈的條件的整條線上反彈,不僅是槳 – Matthew