Из атласа в массив

Мне потребовался функционал атласов и нужно сделать так, чтобы у меня из любого атласа собирало массив спраитов с нужными мне именами и размерами если есть не стандартные атласы.

Допустим есть массив с атлаcами:

let atlases = {
    atlas1: {
        size: 25,
        width: 750,
        height: 300,
        sprite: {
            width: 146,
            height: 90,
            texture: '/images/atlas1.png'
        }
    }
};

То есть atlas1 это картинка в папке images,

введите сюда описание изображения

остальные опции это:

size - количество спрайтов которые должны получится из атласа
width - ширина атласа
height - высота атласа

А во вложенном объекте sprite:

width - ширина получаемого спрайта
height - высота получаемого спрайта
texture - адрес до атласа со спрайтами

Я понимаю, когда они одного размера, но как же мне добиться результата, чтобы они могли быть разные.
Никак не могу додумать, что я делаю не так.

Пробовал делать так:

texture = new pixi.BaseTexture.from(texture.url);
for (let i = 0; i < size; ++i) {
    sprites.push(new pixi.Texture(texture, new pixi.Rectangle(i * Swidth, 0, Swidth, Sheight)));
}

Проблема вся в том, что я не пойму, что мне нужно сделать, чтобы я смог любой спрайт нужного размера вытащить из атласа.

По хорошему, чтобы можно было просто кинуть атлас и он чтобы разбирал сам на спрайты, любых размеров. И запоминал его позицию и все размеры в массив.

Чтобы собирался из атласа, массив со спрайтами: где ключ это номер спрайта в атласе, а значение сам спрайт.

Вообщем не могу врубиться, как мне так сделать, чтобы я смог любую позицию на картинке выбирать или чтобы само раскладывала на нужные размеры и позиции...

Помогите разобраться пожалуйста.


Ответы (0 шт):