diff --git a/src/view.js b/src/view.js new file mode 100644 index 0000000..82ff17b --- /dev/null +++ b/src/view.js @@ -0,0 +1,52 @@ +import { Graphics } from 'pixi.js'; +import { Ball } from './entities/ball/ball'; +import { Brick } from './entities/brick/brick'; +import { Paddle } from './entities/paddle/paddle'; +import { Game } from './game'; + +/** + * Создает визуальное отображение мяча с помощью Pixi.js + * @param {Ball} ball экземпляр класса мяч + */ +function createBallView(ball) { + return new Graphics().circle(0, 0, ball.radius).fill('#ffffff'); +} + +/** + * Создает визуальное отображение ракетки с помощью Pixi.js + * @param {Paddle} paddle экземпляр класса ракетка + */ +function createPaddleView(paddle) { + return new Graphics().rect(0, 0, paddle.width, paddle.height).fill('#fff000'); +} + +/** + * Создает визуальное отображение кирпича с помощью Pixi.js + * @param {Brick} brick экземпляр класса кирпич + */ +function createBrickView(brick) { + return new Graphics().rect(0, 0, brick.width, brick.height).fill('#000fff'); +} + +/** + * Создает визуальное отображение всех сущностей в игре с помощью Pixi.js + * @param {Game} game экземпляр класса игра + */ +export function createGameView(game) { + try { + const ball = createBallView(game.ball); + + const paddle = createPaddleView(game.paddle); + + const bricks = game.bricks.map((row) => row.map((brick) => createBrickView(brick))); + + return { + ball, + paddle, + bricks, + }; + } catch (err) { + console.error(err); + return null; + } +}