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_WIDTH = 50;
export const PADDLE_HEIGHT = 10; 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_RADIUS = 10;
export const BALL_SPEED = 3; 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 { Game } from '../../game';
import { calculateCollision } from '../calculateCollision/calculateCollision'; import { calculateCollision } from '../calculateCollision/calculateCollision';
import { calculateDirection } from '../calculateDirection/calculateDirection'; import { calculateDirection } from '../calculateDirection/calculateDirection';
import { processReflection } from '../processReflection/processReflection';
/** /**
* Функция для вычисления взаимодействий сущностей игры в зависимости от времени из Ticker * Функция для вычисления взаимодействий сущностей игры в зависимости от времени из Ticker
@@ -92,15 +100,15 @@ export function tick(game, containerWidth, containerHeight, deltaTime) {
} }
} }
// Базоввое взаимодействие мяча и ракетки // Взаимодействие мяча и ракетки - обновление горизонтальной и вертикальной скорости в зависимости от сектора попадания
if ( processReflection(
ball.verticalSpeed > 0 && paddle,
ball.y + ball.radius >= paddle.y && ball,
ball.x >= paddle.x && PADDLE_SECTOR_AMOUNT,
ball.x <= paddle.x + paddle.width MIN_PADDLE_REFLECTION_ANGLE,
) { MAX_PADDLE_REFLECTION_ANGLE,
ball.verticalSpeed *= -1; BALL_SPEED,
} );
} catch (err) { } catch (err) {
console.error(err); console.error(err);
return null; return null;