我已经看到,您可以使用NinePatch
将TextureAtlas
es打包到TexturePacker2
。我还看到了this和this。但我不确定是否理解它是正确的。我想将所有GUI内容打包到一个TextureAtlas
中,我的GUI内容不仅由NinePatch
组成,而且还由一些TextureRegion
组成。是否可以将NinePatch
和TextureRegion
合并为一个TextureAtlas
?我可以使用deffault设置,还是必须在paddingX
文件中进行paddingY
,.JSON
等自定义设置?在我的游戏中,我可以使用NinePatch
加载atlas.createPatch("patchimagename");
,还是以TextureRegion
s保护所有内容并创建NinePatch
更好?
答案 0 :(得分:4)
让我们假设您拥有用于TexturePacker2
的文件结构:
images/
image1.png
image2-ninepatch.png <-- this is NinePatch
image3.png
只需将NinePatch
文件的扩展名从.png
(例如)更改为.9.png
(并根据需要添加1px边框)。
images/
...
image2-ninepatch.9.png
...
在此之后,您可以使用Skin
来包裹纹理,并从NinePatch
轻松提取TextureRegion
和Atlas
:
TextureAtlas atlas = ... // load the Atlas
Skin skin = ... // create some root skin or use created one
skin.addRegion(atlas); // register atlas in skin
此外,您可以在一个皮肤上添加许多地图册!
现在你可以做到这些:
按名称获取TextureRegion
:
public TextureRegion getRegion(String region)
{
return skin.getRegion(region);
}
按名称获取NinePatch
:
public NinePatch getNinePatch(String region)
{
return skin.getPatch(region);
}
甚至在使用此皮肤的UI组件(如按钮背景等)中使用您的图像(TextureRegion
或NinePatch
)。
我希望它可以帮到你!