refactor: Переименована функция calculateCollision для лучшей семантики

This commit is contained in:
Ilia Mashkov
2026-07-19 17:00:23 +03:00
parent 8d15f3996f
commit d2cfee3ec3
6 changed files with 16 additions and 18 deletions
@@ -12,7 +12,7 @@
* @param {number} secondObject.bottom - Max Y координата второго объекта * @param {number} secondObject.bottom - Max Y координата второго объекта
* @returns {boolean} * @returns {boolean}
*/ */
export function calculateCollision(firstObject, secondObject) { export function calculateAABBCollision(firstObject, secondObject) {
try { try {
const coordinates = [ const coordinates = [
firstObject.left, firstObject.left,
@@ -1,6 +1,6 @@
import { calculateCollision } from './calculateCollision'; import { calculateAABBCollision } from './calculateAABBCollision';
describe('calculateCollision', () => { describe('calculateAABBCollision', () => {
it('Корректно обрабатывает невозможные кейсы (левая координата больше правой)', () => { it('Корректно обрабатывает невозможные кейсы (левая координата больше правой)', () => {
const firstObject = { const firstObject = {
left: 0, left: 0,
@@ -16,7 +16,7 @@ describe('calculateCollision', () => {
bottom: 10, bottom: 10,
}; };
expect(calculateCollision(firstObject, secondObject)).toBeNull(); expect(calculateAABBCollision(firstObject, secondObject)).toBeNull();
}); });
it('Корректно обрабатывает неверный формат данных', () => { it('Корректно обрабатывает неверный формат данных', () => {
@@ -34,7 +34,7 @@ describe('calculateCollision', () => {
bottom: 10, bottom: 10,
}; };
expect(calculateCollision(firstObject, secondObject)).toBeNull(); expect(calculateAABBCollision(firstObject, secondObject)).toBeNull();
}); });
it('Корректно обрабатывает отсутствие пересечения по X', () => { it('Корректно обрабатывает отсутствие пересечения по X', () => {
@@ -52,7 +52,7 @@ describe('calculateCollision', () => {
bottom: 10, bottom: 10,
}; };
expect(calculateCollision(firstObject, secondObject)).toBe(false); expect(calculateAABBCollision(firstObject, secondObject)).toBe(false);
}); });
it('Корректно обрабатывает отсутствие пересечения по Y', () => { it('Корректно обрабатывает отсутствие пересечения по Y', () => {
@@ -70,7 +70,7 @@ describe('calculateCollision', () => {
bottom: 30, bottom: 30,
}; };
expect(calculateCollision(firstObject, secondObject)).toBe(false); expect(calculateAABBCollision(firstObject, secondObject)).toBe(false);
}); });
it('Корректно обрабатывает отсутствие пересечения по X и Y', () => { it('Корректно обрабатывает отсутствие пересечения по X и Y', () => {
@@ -88,7 +88,7 @@ describe('calculateCollision', () => {
bottom: 30, bottom: 30,
}; };
expect(calculateCollision(firstObject, secondObject)).toBe(false); expect(calculateAABBCollision(firstObject, secondObject)).toBe(false);
}); });
it('Корректно обрабатывает пересечение', () => { it('Корректно обрабатывает пересечение', () => {
@@ -106,7 +106,7 @@ describe('calculateCollision', () => {
bottom: 30, bottom: 30,
}; };
expect(calculateCollision(firstObject, secondObject)).toBe(true); expect(calculateAABBCollision(firstObject, secondObject)).toBe(true);
}); });
it('Корректно обрабатывает вхождение', () => { it('Корректно обрабатывает вхождение', () => {
@@ -124,6 +124,6 @@ describe('calculateCollision', () => {
bottom: 15, 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 множителей для изменения координат * Вычисляет направление наибольшего пересечения по осям и возвращает tuple множителей для изменения координат
@@ -17,7 +17,7 @@ import { calculateCollision } from '../calculateCollision/calculateCollision';
export function calculateDirection(firstObject, secondObject) { export function calculateDirection(firstObject, secondObject) {
try { try {
// Запускаем для проверки формата аргументов // Запускаем для проверки формата аргументов
const isCollided = calculateCollision(firstObject, secondObject); const isCollided = calculateAABBCollision(firstObject, secondObject);
if (isCollided === null) { if (isCollided === null) {
return null; return null;
+2 -2
View File
@@ -9,7 +9,7 @@ import {
PERK_WIDTH, PERK_WIDTH,
} from '../../config'; } from '../../config';
import { Game } from '../../game'; import { Game } from '../../game';
import { calculateCollision } from '../calculateCollision/calculateCollision'; import { calculateAABBCollision } from '../calculateAABBCollision/calculateAABBCollision';
import { calculateDirection } from '../calculateDirection/calculateDirection'; import { calculateDirection } from '../calculateDirection/calculateDirection';
import { processReflection } from '../processReflection/processReflection'; import { processReflection } from '../processReflection/processReflection';
import { spawnRandomPerk } from '../spawnRandomPerk/spawnRandomPerk'; 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 ballObject = { left: ballLeft, right: ballRight, top: ballTop, bottom: ballBottom };
const brickObject = { left: brickLeft, right: brickRight, top: brickTop, bottom: brickBottom }; const brickObject = { left: brickLeft, right: brickRight, top: brickTop, bottom: brickBottom };
const isCollided = calculateCollision(ballObject, brickObject); const isCollided = calculateAABBCollision(ballObject, brickObject);
if (isCollided) { if (isCollided) {
const directions = calculateDirection(ballObject, brickObject); const directions = calculateDirection(ballObject, brickObject);
+2 -2
View File
@@ -1,6 +1,6 @@
import { CONTAINER_WIDTH, PADDLE_WIDE_WIDTH, PERK_BALL_SPEED_DECREASE } from '../../config'; import { CONTAINER_WIDTH, PADDLE_WIDE_WIDTH, PERK_BALL_SPEED_DECREASE } from '../../config';
import { Game } from '../../game'; 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, bottom: paddle.y + paddle.height,
}; };
const isCollided = calculateCollision(perkObject, paddleObject); const isCollided = calculateAABBCollision(perkObject, paddleObject);
if (isCollided) { if (isCollided) {
switch (perk.type) { switch (perk.type) {
-2
View File
@@ -15,8 +15,6 @@ import {
} from './config'; } from './config';
import { LEVELS } from './const/levels'; import { LEVELS } from './const/levels';
import { Game } from './game'; import { Game } from './game';
import { calculateCollision } from './lib/calculateCollision/calculateCollision';
import { calculateDirection } from './lib/calculateDirection/calculateDirection';
import { createGameView, managePerkViewsLifetime, rebuildBrickViews, syncronizeViewsWithGame } from './view'; import { createGameView, managePerkViewsLifetime, rebuildBrickViews, syncronizeViewsWithGame } from './view';
(async () => { (async () => {