У меня есть код, чтобы сгенерировать спрайт-лист аватара игрока, потянув за каждый отдельный элемент тела / одежды и наложив его в определенном порядке. По сути, я пытаюсь объединить листы одежды в одно тело, кладя их друг на друга.
Но окончательный результат - это ТОЛЬКО последний предмет одежды, нарисованный.
Вот два фрагмента кода, которые я использую для этого:
public function new(_username:String)
{
super();
itemArray = new Array<String>();
itemArray[0] = "Body";
itemArray[1] = "Shoes";
this.pixels = new BitmapData(Std.int(itemRect.width), Std.int(itemRect.height));
for (itemName in itemArray)
{
//this.pixels.draw(prepareItem(itemName).pixels);
var itemSprite:FlxSprite = prepareItem(itemName);
stamp(itemSprite);
}
}
private function prepareItem(assetName:String):FlxSprite
{
var assetSprite:FlxSprite = new FlxSprite();
assetSprite.loadGraphic("assets/images/" + assetName + ".png");
assetSprite.pixels.threshold(assetSprite.pixels, itemRect, new Point(0, 0), "==", 0xFF00FF00);
assetSprite.pixels.threshold(assetSprite.pixels, itemRect, new Point(0, 0), "==", 0xFFFF0000);
return assetSprite;
}
Как вы можете видеть, я пытался использовать draw()
для рисования пикселей на существующем BitmapData
,и я также пытаюсь штамповать спрайты, сгенерированные из изображений одежды.
Я прилагаю пример, чтобы прояснить мою цель.Обратите внимание, как обувь наложена на тело.Но с моим текущим кодом обувь полностью заменяет корпус.