gpt4 book ai didi

libgdx TextureAtlas 和 NinePatch 的

转载 作者:行者123 更新时间:2023-12-01 15:17:50 26 4
gpt4 key购买 nike

我正在使用 libgdx 制作一个简单的游戏。我有一个 TextureAtlas,它有我正在尝试使用的 ninepatch:9patch I wanna use

图片保存为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();

输出是这样的:
enter image description here

我真的不知道我做错了什么,但它应该更像这样(除了它上面会有形状,但我没有添加那些):
enter image description here(我手工创建的,我从来没有实际使用过 9patch,而且它没有飞船,因为我懒得编辑它们)

最佳答案

看起来您的“九补丁”并未被视为真正的九路径,而是被视为“退化”九补丁(我之前遇到过非常相似的问题:Loading nine-patch image as a Libgdx Scene2d Button background looks awful,虽然我不是t 使用 TextureAtlas 应该是解决方案。)

基本上,当 Libgdx 从您的图集中读取 9-patch 时,它应该读取所​​有描述如何将图像分成 9 个图 block 的元数据(参见 https://code.google.com/p/libgdx/wiki/TexturePacker#NinePatches)。我看到有几个地方可能会出错:

  1. 你的纹理不是一个有效的九补丁,元数据被忽略了。 (使用 Android draw9patch 工具检查。)
  2. 您的纹理打包器未正确处理 .9.png 文件。检查您的 map 集的 .txt 文件的内容,并查看它是否具有与“menu.9.png”条目关联的“拆分”条目。
  3. 纹理查找只是返回 9-patch 区域的常规 TextureRegion 包装器,而不是将其包装在 NinePatch 对象中。尝试使用 TextureRegion.createNinePatch使之更明确。 (我的印象是这不是必需的,但也许是……)

关于libgdx TextureAtlas 和 NinePatch 的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com