纹理包装动画图像/精灵表有效-Libgdx
Posted
技术标签:
【中文标题】纹理包装动画图像/精灵表有效-Libgdx【英文标题】:Texture packing animation images/Sprite sheets efficiently-Libgdx 【发布时间】:2017-06-05 05:01:18 【问题描述】:对于我的 LibGdx 项目,我拥有包括单个图像和动画精灵表在内的资产。我知道将所有内容打包到单个图集中是有效的。
但是当涉及到精灵表时,我该如何打包?打包时我必须使用单个精灵表还是单个精灵表的图像? 例如:我有一个名为“snake”的精灵表,有 4 帧。 我在snake_01、snake_02、snake_03 和snake_04 中也有蛇形框架。
哪种方法更好?
【问题讨论】:
【参考方案1】:第二种方式管理起来花费的时间要少得多。所以对每一帧动画使用单独的文件,比如snake_01.png、snake_02.png等。
LibGDX TexturePacker 会自动将所有这些区域命名为“snake”并给它们一个索引号。
然后,加载 TextureAtlas 后,您可以拉出整个动画:
Array<TextureAtlas.AtlasRegion> snakeRegions = textureAtlas.findRegions("snake");
Animation<TextureRegion> snakeAnimation = new Animation<TextureRegion>(0.1f, snakeRegions);
如果您使用的 LibGDX 版本早于 1.9.5,请省略 <TextureRegion>
(两次)。 Animation 类在 1.9.5 版本中成为通用类。
【讨论】:
谢谢!还有一件事,当我使用 findRegion() 获取特定图像的区域时,我可以在渲染后看到图集中附近图像的部分。它是如何发生的? 如果精灵被绘制成小于屏幕尺寸的 1x1 到原始尺寸,并且您没有使用最近过滤,线性过滤将导致图集上的附近像素渗入 Sprite。增加纹理打包器设置中的填充以解决此问题。以上是关于纹理包装动画图像/精灵表有效-Libgdx的主要内容,如果未能解决你的问题,请参考以下文章