2017-10-17 109 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