我已经用JS编写了一个简单的乒乓球比赛,但是当我接触球拍时,我不能强迫球改变方向。我已经插入了我的实际beatControl funtcion。
function beatControl() {
if (ballX + ballSize >= xAiPosition) {
ballSpeedX = -ballSpeedX;
//console.log(ballX);
} else if (ballX == xPosition + paddleWidth) {
ballSpeedX = -ballSpeedX;
// console.log(ballX);
}
}
答案 0 :(得分:0)
球从球拍的错误一端反弹。
问题在于这一行
else if (ballX == xPosition + paddleWidth)
应该是
else if (ballX <= xPosition + paddleWidth)
答案 1 :(得分:0)
这是我在JS pong游戏中使用的一个示例碰撞。首先它检查它是否足够向右或向左,如果这是真的,那么它检查桨是否也在正确的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;
}