Feature/appearance #6

Merged
ilia merged 9 commits from feature/appearance into main 2026-07-20 07:09:11 +00:00
6 changed files with 28 additions and 9 deletions
Showing only changes of commit 5739575200 - Show all commits
Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

+5 -1
View File
@@ -45,6 +45,10 @@ import { createGameView, managePerkViewsLifetime, rebuildBrickViews, syncronizeV
'/sprites/block_1.png', '/sprites/block_1.png',
'/sprites/block_2.png', '/sprites/block_2.png',
'/sprites/block_3.png', '/sprites/block_3.png',
'/sprites/perk_1.png',
'/sprites/perk_2.png',
'/sprites/perk_3.png',
'/sprites/perk_4.png',
]); ]);
const game = new Game(LEVELS); const game = new Game(LEVELS);
@@ -67,7 +71,7 @@ import { createGameView, managePerkViewsLifetime, rebuildBrickViews, syncronizeV
rebuildBrickViews(views, game, container, textures); rebuildBrickViews(views, game, container, textures);
currentLevel = game.currentLevel; currentLevel = game.currentLevel;
} }
managePerkViewsLifetime(views, game, container); managePerkViewsLifetime(views, game, container, textures);
syncronizeViewsWithGame(views, game); syncronizeViewsWithGame(views, game);
}); });
})(); })();
+23 -8
View File
@@ -51,20 +51,34 @@ function createBrickView(brick, textures) {
* Создает визуальное отображение бонуса с помощью Pixi.js * Создает визуальное отображение бонуса с помощью Pixi.js
* @param {Perk} perk экземпляр класса бонус * @param {Perk} perk экземпляр класса бонус
* @returns {Graphics} графическое отображение бонуса * @returns {Graphics} графическое отображение бонуса
* @param {object} textures текстуры блоков
*/ */
function createPerkView(perk) { function createPerkView(perk, textures) {
const perkView = new Graphics().rect(0, 0, perk.width, perk.height); let texture;
switch (perk.type) { switch (perk.type) {
case 'slow': case 'slow':
return perkView.fill('#00ffff'); texture = textures['/sprites/perk_1.png'];
break;
case 'wide': case 'wide':
return perkView.fill('#0f0f0f'); texture = textures['/sprites/perk_2.png'];
break;
case 'life': case 'life':
return perkView.fill('#f0f0f0'); texture = textures['/sprites/perk_3.png'];
break;
case 'clone':
texture = textures['/sprites/perk_3.png'];
break;
default: default:
return perkView.fill('#ffffff'); texture = textures['/sprites/perk_1.png'];
break;
} }
const perkSprite = new Sprite(texture);
perkSprite.width = perk.width;
perkSprite.height = perk.height;
return perkSprite;
} }
/** /**
@@ -127,8 +141,9 @@ export function createGameView(game, container, textures) {
* @param {object} views объект с визуальными отображениями сущностей игры * @param {object} views объект с визуальными отображениями сущностей игры
* @param {Game} game экземпляр класса игра * @param {Game} game экземпляр класса игра
* @param {Container} container экземпляр класса контейнер Pixi.js * @param {Container} container экземпляр класса контейнер Pixi.js
* @param {object} textures объект с текстурами для визуального отображения
*/ */
export function managePerkViewsLifetime(views, game, container) { export function managePerkViewsLifetime(views, game, container, textures) {
if (views.paddle.width !== game.paddle.width) { if (views.paddle.width !== game.paddle.width) {
views.paddle.width = game.paddle.width; views.paddle.width = game.paddle.width;
} }
@@ -159,7 +174,7 @@ export function managePerkViewsLifetime(views, game, container) {
for (const perk of game.perks) { for (const perk of game.perks) {
if (!views.perks.has(perk)) { if (!views.perks.has(perk)) {
const perkView = createPerkView(perk); const perkView = createPerkView(perk, textures);
container.addChild(perkView); container.addChild(perkView);
views.perks.set(perk, perkView); views.perks.set(perk, perkView);
} }