feat(game): Замена логики взаимодействия мяча и ракетки

This commit is contained in:
Ilia Mashkov
2026-07-18 15:40:42 +03:00
parent b0bbb6df96
commit a405a91f65
2 changed files with 21 additions and 10 deletions
+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;