0

在我的游戏中,我试图在一个图像文件中使用包含所有 GUI 纹理的精灵表。但我不知道如何仅使用由矩形定义的图像资源的一部分来创建精灵。

OBS:我不想使用 Texture Packer,我有一个替代的更简单的免费 Texture Packer 类程序,它将纹理捆绑在图像文件中,并在 json 文件中提供映射。我可以解析 json,但是一旦我得到定义单个纹理的矩形和工作表图像,我不知道如何处理它们。

4

2 回答 2

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;
于 2014-09-29T14:58:28.280 回答
0

基本上你需要:

  • 创建一个新的BitmapData对象。
  • 在此对象上调用 copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point),其中 sourceBitmapData 是您加载的 spritesheet BitmapData。
  • display.flash.Bitmap从此 BitmapData构建一个新对象。
  • 调用 addChild(bm) 其中 bm 是您刚刚创建的位图,以便在您想要的容器中显示它。

看这里 :

于 2014-10-06T15:05:10.897 回答