2014-09-28 3 views
0

В моей игре я пытаюсь использовать лист спрайтов со всеми моими текстурами графического интерфейса в одном файле изображения. Но я не знаю, как создать спрайт, используя только часть ресурса изображения, определенного прямоугольником.Использование нескольких текстур в одном файле изображения

OBS: Я не хочу использовать Texture Packer, у меня есть альтернативная простая программа для текстурной упаковки, которая связывает текстуру в файле изображения и дает мне отображение в json-файле. Я могу разобрать json, но как только я получаю прямоугольник, определяющий единую текстуру и изображение листа, я не знаю, что с ними делать.

ответ

1

Согласно Beeblerox

в текущей версии Flixel вы можете сделать это следующим образом:

var cached:CachedGraphics = FlxG.bitmap.add(Graphic); // where Graphic is the path to image in assets 
var textureRegion:TextureRegion = new TextureRegion(cached, rect.x, rect,y, rect.width, rect.height, 0, 0, rect.width, rect.height); // where rect is the rectangular area you want to load into sprite 
sprite.loadGraphic(textureRegion); 

в следующей версии, которая в работах будет изменено на:

var imageFrame:ImageFrame = ImageFrame.fromRectangle("path/to/image", rect); 
sprite.frames = imageFrame; 
0

В основном вам необходимо:

  • создать новый BitmapData объект.
  • call copyPixels (sourceBitmapData: BitmapData, sourceRect: Rectangle, destPoint: Point) на этом объекте, где sourceBitmapData - это ваш загруженный спрайт BitmapData.
  • создать новый объект display.flash.Bitmap из этого BitmapData.
  • вызов addChild (bm), где bm - это растровое изображение, которое вы только что создали, чтобы отобразить его в нужном контейнере.

Смотрите здесь:

 Смежные вопросы

  • Нет связанных вопросов^_^