【问题标题】:Libgdx texturepacker doesn't pack all imagesLibgdx texturepacker 不会打包所有图像
【发布时间】:2019-12-05 11:36:07
【问题描述】:

当我在 libgdx 中运行纹理打包器时,我遇到的问题是它不会将所有图像打包在一个大的精灵表中。例如,如果我有 4 张图片,它只包含 3 张。请注意,两张图片是彼此的精确副本,因此可能与它有关。

【问题讨论】:

  • 我很好奇 - 为什么你需要 2 张完全相同的图片?
  • 我在步行循环动画中重复一帧。除非我做错了什么,否则我是动画新手。所以是的,也许没有必要使用图像的精确副本。
  • 一定有办法重用图片。我自己为对象制作动画,但无论您以何种方式创建动画,都必须有一些解决方案来避免重复图像...
  • 是的,实际上你可以不用管它。 TexturePacker 中默认启用别名。当您在游戏中加载它时,它仍会为您提供所有动画帧。将有单独的 TextureRegions 引用图集的同一区域。

标签: libgdx texturepacker


【解决方案1】:

默认情况下,LibGDX 不会打包精确副本的图像。这可以通过在您的配置中将alias 设置为false 来覆盖。

别名:如果为真,则两个像素相同的图像只会被打包一次。 (默认:真)

但是,通常只打包一次相同的图像是有益的,因为它会创建更小的纹理。在获取 TextureRegion 对象或创建 Sprite 时,您仍然可以使用这两个名称。

【讨论】:

  • 你的意思是配置生成的atlas文件吗?我试图将(别名:true)放入其中,但它给出了一个错误。所以我不确定配置的位置。
  • 没关系。 Yust 使用了一个 Settings 类并将别名分配给 false 并将其分配给 TexturePacker.process()
  • 是的,你需要使用Settings类或者pack.json创建在有图片的目录下进行打包。
【解决方案2】:

在纹理打包器设置中将 alias 设置为 false。

Documentation here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 2012-09-17
    • 2012-06-15
    • 1970-01-01
    • 2014-03-20
    相关资源
    最近更新 更多