refactor: Переименована функция calculateCollision для лучшей семантики
This commit is contained in:
+1
-1
@@ -12,7 +12,7 @@
|
||||
* @param {number} secondObject.bottom - Max Y координата второго объекта
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function calculateCollision(firstObject, secondObject) {
|
||||
export function calculateAABBCollision(firstObject, secondObject) {
|
||||
try {
|
||||
const coordinates = [
|
||||
firstObject.left,
|
||||
+9
-9
@@ -1,6 +1,6 @@
|
||||
import { calculateCollision } from './calculateCollision';
|
||||
import { calculateAABBCollision } from './calculateAABBCollision';
|
||||
|
||||
describe('calculateCollision', () => {
|
||||
describe('calculateAABBCollision', () => {
|
||||
it('Корректно обрабатывает невозможные кейсы (левая координата больше правой)', () => {
|
||||
const firstObject = {
|
||||
left: 0,
|
||||
@@ -16,7 +16,7 @@ describe('calculateCollision', () => {
|
||||
bottom: 10,
|
||||
};
|
||||
|
||||
expect(calculateCollision(firstObject, secondObject)).toBeNull();
|
||||
expect(calculateAABBCollision(firstObject, secondObject)).toBeNull();
|
||||
});
|
||||
|
||||
it('Корректно обрабатывает неверный формат данных', () => {
|
||||
@@ -34,7 +34,7 @@ describe('calculateCollision', () => {
|
||||
bottom: 10,
|
||||
};
|
||||
|
||||
expect(calculateCollision(firstObject, secondObject)).toBeNull();
|
||||
expect(calculateAABBCollision(firstObject, secondObject)).toBeNull();
|
||||
});
|
||||
|
||||
it('Корректно обрабатывает отсутствие пересечения по X', () => {
|
||||
@@ -52,7 +52,7 @@ describe('calculateCollision', () => {
|
||||
bottom: 10,
|
||||
};
|
||||
|
||||
expect(calculateCollision(firstObject, secondObject)).toBe(false);
|
||||
expect(calculateAABBCollision(firstObject, secondObject)).toBe(false);
|
||||
});
|
||||
|
||||
it('Корректно обрабатывает отсутствие пересечения по Y', () => {
|
||||
@@ -70,7 +70,7 @@ describe('calculateCollision', () => {
|
||||
bottom: 30,
|
||||
};
|
||||
|
||||
expect(calculateCollision(firstObject, secondObject)).toBe(false);
|
||||
expect(calculateAABBCollision(firstObject, secondObject)).toBe(false);
|
||||
});
|
||||
|
||||
it('Корректно обрабатывает отсутствие пересечения по X и Y', () => {
|
||||
@@ -88,7 +88,7 @@ describe('calculateCollision', () => {
|
||||
bottom: 30,
|
||||
};
|
||||
|
||||
expect(calculateCollision(firstObject, secondObject)).toBe(false);
|
||||
expect(calculateAABBCollision(firstObject, secondObject)).toBe(false);
|
||||
});
|
||||
|
||||
it('Корректно обрабатывает пересечение', () => {
|
||||
@@ -106,7 +106,7 @@ describe('calculateCollision', () => {
|
||||
bottom: 30,
|
||||
};
|
||||
|
||||
expect(calculateCollision(firstObject, secondObject)).toBe(true);
|
||||
expect(calculateAABBCollision(firstObject, secondObject)).toBe(true);
|
||||
});
|
||||
|
||||
it('Корректно обрабатывает вхождение', () => {
|
||||
@@ -124,6 +124,6 @@ describe('calculateCollision', () => {
|
||||
bottom: 15,
|
||||
};
|
||||
|
||||
expect(calculateCollision(firstObject, secondObject)).toBe(true);
|
||||
expect(calculateAABBCollision(firstObject, secondObject)).toBe(true);
|
||||
});
|
||||
});
|
||||
@@ -1,4 +1,4 @@
|
||||
import { calculateCollision } from '../calculateCollision/calculateCollision';
|
||||
import { calculateAABBCollision } from '../calculateAABBCollision/calculateAABBCollision';
|
||||
|
||||
/**
|
||||
* Вычисляет направление наибольшего пересечения по осям и возвращает tuple множителей для изменения координат
|
||||
@@ -17,7 +17,7 @@ import { calculateCollision } from '../calculateCollision/calculateCollision';
|
||||
export function calculateDirection(firstObject, secondObject) {
|
||||
try {
|
||||
// Запускаем для проверки формата аргументов
|
||||
const isCollided = calculateCollision(firstObject, secondObject);
|
||||
const isCollided = calculateAABBCollision(firstObject, secondObject);
|
||||
|
||||
if (isCollided === null) {
|
||||
return null;
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
PERK_WIDTH,
|
||||
} from '../../config';
|
||||
import { Game } from '../../game';
|
||||
import { calculateCollision } from '../calculateCollision/calculateCollision';
|
||||
import { calculateAABBCollision } from '../calculateAABBCollision/calculateAABBCollision';
|
||||
import { calculateDirection } from '../calculateDirection/calculateDirection';
|
||||
import { processReflection } from '../processReflection/processReflection';
|
||||
import { spawnRandomPerk } from '../spawnRandomPerk/spawnRandomPerk';
|
||||
@@ -91,7 +91,7 @@ export function tick(game, containerWidth, containerHeight, deltaTime) {
|
||||
const ballObject = { left: ballLeft, right: ballRight, top: ballTop, bottom: ballBottom };
|
||||
const brickObject = { left: brickLeft, right: brickRight, top: brickTop, bottom: brickBottom };
|
||||
|
||||
const isCollided = calculateCollision(ballObject, brickObject);
|
||||
const isCollided = calculateAABBCollision(ballObject, brickObject);
|
||||
|
||||
if (isCollided) {
|
||||
const directions = calculateDirection(ballObject, brickObject);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { CONTAINER_WIDTH, PADDLE_WIDE_WIDTH, PERK_BALL_SPEED_DECREASE } from '../../config';
|
||||
import { Game } from '../../game';
|
||||
import { calculateCollision } from '../calculateCollision/calculateCollision';
|
||||
import { calculateAABBCollision } from '../calculateAABBCollision/calculateAABBCollision';
|
||||
|
||||
/**
|
||||
* Обновляет состояние бонусов, меняет положение, проверяет столкновение с ракеткой и выход за границу поля
|
||||
@@ -40,7 +40,7 @@ export function updatePerks(game, containerHeight, deltaTime) {
|
||||
bottom: paddle.y + paddle.height,
|
||||
};
|
||||
|
||||
const isCollided = calculateCollision(perkObject, paddleObject);
|
||||
const isCollided = calculateAABBCollision(perkObject, paddleObject);
|
||||
|
||||
if (isCollided) {
|
||||
switch (perk.type) {
|
||||
|
||||
Reference in New Issue
Block a user