Update script.js
Browse files
script.js
CHANGED
@@ -40,6 +40,14 @@ gameArea.addEventListener('touchmove', (e) => {
|
|
40 |
}
|
41 |
});
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
function update() {
|
44 |
if (!isGamePaused) {
|
45 |
// Update ball position
|
@@ -57,13 +65,7 @@ function update() {
|
|
57 |
ballY + ballSize >= paddleLeftY &&
|
58 |
ballY <= paddleLeftY + paddleHeight
|
59 |
) {
|
60 |
-
|
61 |
-
const hitPosition = (ballY - (paddleLeftY + paddleHeight / 2)) / (paddleHeight / 2);
|
62 |
-
// Calculate angle based on hit position (in radians)
|
63 |
-
const angle = (hitPosition * maxAngle * Math.PI) / 180;
|
64 |
-
// Adjust ball speed based on angle
|
65 |
-
ballSpeedX = Math.abs(ballSpeedX); // Ensure ball moves right
|
66 |
-
ballSpeedY = Math.tan(angle) * Math.abs(ballSpeedX); // Set vertical speed based on angle
|
67 |
}
|
68 |
|
69 |
// Ball collision with right paddle
|
@@ -72,13 +74,7 @@ function update() {
|
|
72 |
ballY + ballSize >= paddleRightY &&
|
73 |
ballY <= paddleRightY + paddleHeight
|
74 |
) {
|
75 |
-
|
76 |
-
const hitPosition = (ballY - (paddleRightY + paddleHeight / 2)) / (paddleHeight / 2);
|
77 |
-
// Calculate angle based on hit position (in radians)
|
78 |
-
const angle = (hitPosition * maxAngle * Math.PI) / 180;
|
79 |
-
// Adjust ball speed based on angle
|
80 |
-
ballSpeedX = -Math.abs(ballSpeedX); // Ensure ball moves left
|
81 |
-
ballSpeedY = Math.tan(angle) * Math.abs(ballSpeedX); // Set vertical speed based on angle
|
82 |
}
|
83 |
|
84 |
// Ball out of bounds (left or right)
|
|
|
40 |
}
|
41 |
});
|
42 |
|
43 |
+
function handlePaddleCollision(paddleY, paddleXDirection) {
|
44 |
+
const hitPosition = (ballY - (paddleY + paddleHeight / 2)) / (paddleHeight / 2);
|
45 |
+
const angle = hitPosition * maxAngle * (Math.PI / 180); // Convert to radians
|
46 |
+
|
47 |
+
ballSpeedX = paddleXDirection * Math.abs(ballSpeedX); // Ensure proper direction
|
48 |
+
ballSpeedY = Math.sin(angle) * Math.abs(ballSpeedX); // Adjust vertical speed
|
49 |
+
}
|
50 |
+
|
51 |
function update() {
|
52 |
if (!isGamePaused) {
|
53 |
// Update ball position
|
|
|
65 |
ballY + ballSize >= paddleLeftY &&
|
66 |
ballY <= paddleLeftY + paddleHeight
|
67 |
) {
|
68 |
+
handlePaddleCollision(paddleLeftY, 1); // Move right
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
|
71 |
// Ball collision with right paddle
|
|
|
74 |
ballY + ballSize >= paddleRightY &&
|
75 |
ballY <= paddleRightY + paddleHeight
|
76 |
) {
|
77 |
+
handlePaddleCollision(paddleRightY, -1); // Move left
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
// Ball out of bounds (left or right)
|