refactor: Формат хранения кирпичей в классе Game переписан с вложенного массива на обычный массив. Входные данные для значений каждого кирпича берутся из карты уровней
This commit is contained in:
+6
-6
@@ -20,12 +20,13 @@ import { toRadians } from './lib/toRadians/toRadians';
|
||||
*/
|
||||
export class Game {
|
||||
/**
|
||||
* @param {number} columnAmount количество кирпичей по оси X, неотрицателное, целое число
|
||||
* @param {number} rowAmount количество кирпичей по оси Y, неотрицателное, целое число
|
||||
* @param {number[][][]} levels список уровней, каждый элемент которого - карта расположения блоков
|
||||
*/
|
||||
constructor(columnAmount, rowAmount) {
|
||||
constructor(levels) {
|
||||
this.livesAmount = 3;
|
||||
this.status = 'in_process';
|
||||
this.currentLevel = 0;
|
||||
this.maxLevel = levels.length - 1;
|
||||
|
||||
this.ball = new Ball(
|
||||
CONTAINER_WIDTH / 2 - BALL_RADIUS / 2,
|
||||
@@ -35,8 +36,7 @@ export class Game {
|
||||
-1 * BALL_SPEED * Math.sin(toRadians(BALL_INITIAL_ANGLE)),
|
||||
);
|
||||
this.paddle = new Paddle(0, CONTAINER_HEIGHT - PADDLE_HEIGHT, PADDLE_WIDTH, PADDLE_HEIGHT);
|
||||
|
||||
this.bricks = layBricks(columnAmount, rowAmount, BRICK_WIDTH, BRICK_HEIGHT);
|
||||
this.bricks = layBricks(levels[this.currentLevel], BRICK_WIDTH, BRICK_HEIGHT);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -59,7 +59,7 @@ export class Game {
|
||||
}
|
||||
}
|
||||
|
||||
const isAnyBrickAlive = this.bricks.some((row) => row.some((brick) => brick.alive));
|
||||
const isAnyBrickAlive = this.bricks.some((brick) => brick.alive);
|
||||
|
||||
if (!isAnyBrickAlive) {
|
||||
this.status = 'completed';
|
||||
|
||||
Reference in New Issue
Block a user