2

NinePatch我已经看到,您可以TextureAtlas使用TexturePacker2. 我也看到了这个这个。但我不确定是否理解正确。我想把我所有的 GUI 东西打包成一个TextureAtlas,我的 GUI 东西不仅由NinePatchs 组成,而且还由一些TextureRegions 组成。NinePatchs 和TextureRegions可以合二为一TextureAtlas吗?我可以使用默认设置还是必须在文件paddingX中进行一些自定义设置?在我的游戏中,我可以通过使用来加载,还是将所有内容都保存为s 并从中创建出来会更好?paddingY.JSONNinePatchatlas.createPatch("patchimagename");TextureRegionNinePatch

4

1 回答 1

4

让我们想象一下你有你使用的文件结构TexturePacker2

images/
  image1.png
  image2-ninepatch.png   <-- this is NinePatch
  image3.png

只需将文件的扩展NinePatch.png(例如)更改为.9.png(并在需要时为其添加 1px 边框)。

images/
  ...
  image2-ninepatch.9.png
  ...

在此之后,您可以使用Skin包装纹理并轻松提取NinePatchTextureRegionAtlas

TextureAtlas atlas = ... // load the Atlas
Skin skin = ... // create some root skin or use created one
skin.addRegion(atlas); // register atlas in skin

此外,您可以为一个皮肤添加多个图集!

现在您可以执行以下操作:

  1. 按名称获取TextureRegion

    public TextureRegion getRegion(String region)
    {
        return skin.getRegion(region);
    }
    
  2. 按名称获取NinePatch

    public NinePatch getNinePatch(String region)
    {
        return skin.getPatch(region);
    }
    
  3. 甚至在使用此皮肤的 UI 组件(如按钮背景等)中使用您的图像(TextureRegion或)。NinePatch

我希望它对你有帮助!

于 2014-02-05T16:38:09.703 回答