fix: Исправлен эффект увеличения ширины ракетки, работа NineSliceSprite

This commit is contained in:
Ilia Mashkov
2026-07-21 11:25:00 +03:00
parent 3432d02eaf
commit 8cfe62a064
+6 -4
View File
@@ -41,8 +41,9 @@ function createBallView(ball, textures) {
function createPaddleView(paddle, textures) { function createPaddleView(paddle, textures) {
const texture = textures['/sprites/paddle.png']; const texture = textures['/sprites/paddle.png'];
const paddleSprite = new NineSliceSprite({ texture, leftWidth: 150, rightWidth: 150, topHeight: 0, bottomHeight: 0 }); const paddleSprite = new NineSliceSprite({ texture, leftWidth: 150, rightWidth: 150, topHeight: 0, bottomHeight: 0 });
paddleSprite.width = paddle.width; const paddleAspectRatio = paddle.height / texture.height;
paddleSprite.height = paddle.height; paddleSprite.scale.set(paddleAspectRatio);
paddleSprite.width = paddle.width / paddleAspectRatio;
return paddleSprite; return paddleSprite;
} }
@@ -174,8 +175,9 @@ export function createGameView(game, container, textures) {
* @param {object} textures объект с текстурами для визуального отображения * @param {object} textures объект с текстурами для визуального отображения
*/ */
export function managePerkViewsLifetime(views, game, container, textures) { export function managePerkViewsLifetime(views, game, container, textures) {
if (views.paddle.width !== game.paddle.width) { // Изменяем ширину отображения ракетки основываясь на aspect ratio по оси X и ширине ракетки
views.paddle.width = game.paddle.width; if (views.paddle.width * views.paddle.scale.x !== game.paddle.width) {
views.paddle.width = game.paddle.width / views.paddle.scale.x;
} }
for (const [ball, ballView] of views.balls) { for (const [ball, ballView] of views.balls) {