NinePatch
我已经看到,您可以TextureAtlas
使用TexturePacker2
. 我也看到了这个和这个。但我不确定是否理解正确。我想把我所有的 GUI 东西打包成一个TextureAtlas
,我的 GUI 东西不仅由NinePatch
s 组成,而且还由一些TextureRegion
s 组成。NinePatch
s 和TextureRegion
s可以合二为一TextureAtlas
吗?我可以使用默认设置还是必须在文件paddingX
中进行一些自定义设置?在我的游戏中,我可以通过使用来加载,还是将所有内容都保存为s 并从中创建出来会更好?paddingY
.JSON
NinePatch
atlas.createPatch("patchimagename");
TextureRegion
NinePatch
问问题
1694 次
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
包装纹理并轻松提取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
我希望它对你有帮助!
于 2014-02-05T16:38:09.703 回答