pixijs: установите ширину и высоту спрайтов пропорционально на основе их текстуры (изображения)

#pixi.js

#pixi.js

Вопрос:

У меня около 50 изображений, я загружаю их в приложение. Затем я создаю спрайт для каждого изображения. Ширина и высота изображений различаются, они не одинаковой ширины / высоты, а изображения довольно большие по сравнению со спрайтами, которые мне нужны на экране.

Я использую последнюю PIXI.jS версию. Я определил ширину (допустим, width = 100). Мне нужно, чтобы все спрайты были с = 100, но высота должна быть рассчитана пропорционально на основе изображения (из которого была создана текстура).

Возможно ли это?

 let mySprite = new PIXI.Sprite(app.loader.resources[imgName].texture);
mySprite.anchor.set(0.5, 0.5);

mySprite.width = 100;
mySprite.height = 100; // instead this should be calculated to fit image proportions
 

Я думаю, что у меня нет проблем с математикой, но у меня есть проблемы с получением правильных значений, по которым должны быть рассчитаны вычисления / пропорции.

Ответ №1:

Вы можете получить «родную» ширину / высоту из базовой текстуры:

 alert(mySprite.texture.baseTexture.width);
alert(mySprite.texture.baseTexture.height);
 

В PixiJS текстура — это просто тонкая оболочка вокруг базовой текстуры, которая сообщает спрайту, какую часть базовой текстуры рисовать. Все хорошее находится в базовой структуре.