Files
arkanoid/src/view.js
T

53 lines
1.6 KiB
JavaScript
Raw Normal View History

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;
}
}