|
const gameArea = document.getElementById('gameArea'); |
|
const paddleLeft = document.getElementById('paddleLeft'); |
|
const paddleRight = document.getElementById('paddleRight'); |
|
const ball = document.getElementById('ball'); |
|
|
|
let paddleLeftY = 160; |
|
let paddleRightY = 160; |
|
let ballX = 195; |
|
let ballY = 195; |
|
let ballSpeedX = 2; |
|
let ballSpeedY = 2; |
|
|
|
const paddleSpeed = 10; |
|
const paddleHeight = 80; |
|
const gameHeight = 400; |
|
const gameWidth = 400; |
|
|
|
function update() { |
|
|
|
ballX += ballSpeedX; |
|
ballY += ballSpeedY; |
|
|
|
|
|
if (ballY <= 0 || ballY >= gameHeight - 15) { |
|
ballSpeedY = -ballSpeedY; |
|
} |
|
|
|
|
|
if (ballX <= 20 && ballY >= paddleLeftY && ballY <= paddleLeftY + paddleHeight) { |
|
ballSpeedX = -ballSpeedX; |
|
} |
|
if (ballX >= gameWidth - 35 && ballY >= paddleRightY && ballY <= paddleRightY + paddleHeight) { |
|
ballSpeedX = -ballSpeedX; |
|
} |
|
|
|
|
|
if (ballX <= 0 || ballX >= gameWidth) { |
|
resetBall(); |
|
} |
|
|
|
|
|
ball.style.left = ballX + 'px'; |
|
ball.style.top = ballY + 'px'; |
|
|
|
|
|
paddleLeft.style.top = paddleLeftY + 'px'; |
|
paddleRight.style.top = paddleRightY + 'px'; |
|
|
|
requestAnimationFrame(update); |
|
} |
|
|
|
function resetBall() { |
|
ballX = gameWidth / 2; |
|
ballY = gameHeight / 2; |
|
ballSpeedX = -ballSpeedX; |
|
} |
|
|
|
|
|
gameArea.addEventListener('touchmove', (e) => { |
|
const touchY = e.touches[0].clientY - gameArea.getBoundingClientRect().top; |
|
|
|
|
|
if (touchY < gameWidth / 2) { |
|
paddleLeftY = touchY - paddleHeight / 2; |
|
if (paddleLeftY < 0) paddleLeftY = 0; |
|
if (paddleLeftY > gameHeight - paddleHeight) paddleLeftY = gameHeight - paddleHeight; |
|
} |
|
|
|
|
|
else { |
|
paddleRightY = touchY - paddleHeight / 2; |
|
if (paddleRightY < 0) paddleRightY = 0; |
|
if (paddleRightY > gameHeight - paddleHeight) paddleRightY = gameHeight - paddleHeight; |
|
} |
|
}); |
|
|
|
update(); |