Feature/advanced game mechanics #5
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user