Из атласа в массив
Мне потребовался функционал атласов и нужно сделать так, чтобы у меня из любого атласа собирало массив спраитов с нужными мне именами и размерами если есть не стандартные атласы.
Допустим есть массив с атла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)));
}
Проблема вся в том, что я не пойму, что мне нужно сделать, чтобы я смог любой спрайт нужного размера вытащить из атласа.
По хорошему, чтобы можно было просто кинуть атлас и он чтобы разбирал сам на спрайты, любых размеров. И запоминал его позицию и все размеры в массив.
Чтобы собирался из атласа, массив со спрайтами: где ключ это номер спрайта в атласе, а значение сам спрайт.
Вообщем не могу врубиться, как мне так сделать, чтобы я смог любую позицию на картинке выбирать или чтобы само раскладывала на нужные размеры и позиции...
Помогите разобраться пожалуйста.
