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