我正在使用libgdx制作一个简单的游戏。我有一个我正在尝试使用的九个补丁的TextureAtlas:
图像保存为menu.9.png
我使用以下代码:
Image bg = new Image(Room.iAtlas.findRegion("GUI/menu"));
bg.setBounds(guix-border,guiy-border,(border+radius)*2,(border+radius)*2);
batch.begin();
bg.draw(s,1);
batch.end();
输出如下:
我真的不知道我做错了什么,但它应该更像这样(除了它上面会有形状,但我没有添加它们):
(我手工制作,我从来没有实际使用9patch,而且它没有船只,因为我没有费心去编辑那些)
答案 0 :(得分:2)
看起来你的“九个补丁”并没有被视为真正的九条路径,并被视为一个“堕落”的九补丁(我之前有一个非常类似的问题:Loading nine-patch image as a Libgdx Scene2d Button background looks awful,尽管我没有使用应该是解决方案的TextureAtlas
。)
基本上,当Libgdx从你的地图集中读取九个补丁时,它应该读取所有描述如何将图像切割成9个图块的元数据(参见https://code.google.com/p/libgdx/wiki/TexturePacker#NinePatches)。我看到一些可能出错的地方:
draw9patch
工具查看。).9.png
文件。检查地图集的.txt文件的内容,看看它是否有与“menu.9.png”条目相关联的“拆分”条目。TextureRegion
包装器,而不是将其包装在NinePatch
对象中。尝试使用TextureRegion.createNinePatch
使其更明确。 (我的印象是这不是必要的,但也许是......)