Feature/advanced game mechanics #5

Merged
ilia merged 30 commits from feature/advanced-game-mechanics into main 2026-07-19 15:09:22 +00:00
2 changed files with 21 additions and 10 deletions
Showing only changes of commit a405a91f65 - Show all commits
+3
View File
@@ -3,6 +3,9 @@ export const CONTAINER_HEIGHT = 600;
export const PADDLE_WIDTH = 50;
export const PADDLE_HEIGHT = 10;
export const MIN_PADDLE_REFLECTION_ANGLE = 20;
export const MAX_PADDLE_REFLECTION_ANGLE = 160;
export const PADDLE_SECTOR_AMOUNT = 20;
export const BALL_RADIUS = 10;
export const BALL_SPEED = 3;
+18 -10
View File
@@ -1,7 +1,15 @@
import { CONTAINER_HEIGHT, CONTAINER_WIDTH } from '../../config';
import {
BALL_SPEED,
CONTAINER_HEIGHT,
CONTAINER_WIDTH,
MAX_PADDLE_REFLECTION_ANGLE,
MIN_PADDLE_REFLECTION_ANGLE,
PADDLE_SECTOR_AMOUNT,
} from '../../config';
import { Game } from '../../game';
import { calculateCollision } from '../calculateCollision/calculateCollision';
import { calculateDirection } from '../calculateDirection/calculateDirection';
import { processReflection } from '../processReflection/processReflection';
/**
* Функция для вычисления взаимодействий сущностей игры в зависимости от времени из Ticker
@@ -92,15 +100,15 @@ export function tick(game, containerWidth, containerHeight, deltaTime) {
}
}
// Базоввое взаимодействие мяча и ракетки
if (
ball.verticalSpeed > 0 &&
ball.y + ball.radius >= paddle.y &&
ball.x >= paddle.x &&
ball.x <= paddle.x + paddle.width
) {
ball.verticalSpeed *= -1;
}
// Взаимодействие мяча и ракетки - обновление горизонтальной и вертикальной скорости в зависимости от сектора попадания
processReflection(
paddle,
ball,
PADDLE_SECTOR_AMOUNT,
MIN_PADDLE_REFLECTION_ANGLE,
MAX_PADDLE_REFLECTION_ANGLE,
BALL_SPEED,
);
} catch (err) {
console.error(err);
return null;