我在 LibGDX 中编写的手机游戏面临性能问题。
我们假设只有一种分辨率 - 1920x1080
- 仅用于测试。
我希望这些粒子围绕我的 Logo 飞行,因此我需要它们的大小至少为 256px/512px
- 这样在给定的分辨率下看起来不错。
如果一帧具有该大小,并且我需要至少 32 帧才能使其看起来不错,则很容易计算出整个 spritesheet 的尺寸:
width: 256 * 8 (columns) = 2048
height: 512 * 4 (rows) = 2048
这是最乐观的想法,因为 spritesheet 应该更大。 spritesheet 的重量约为 50kb,所以它确实很好,但尺寸给我带来了麻烦。
昨天我在 LibGDX 的桌面版本上测试了所有内容,一切都渲染得很好。我在完成菜单后将游戏移植到Android,并且该 Sprite 表应绘制的区域是黑色。
我在 gamedev 或这里(不记得了)上读到,我应该只使用最大尺寸为 od 1024/1024
的图形,因为 LibGdx 在许多版本上使用 Android 加载更高纹理时存在一些问题.
我想要实现什么目标? 我需要找到一个想法如何使其工作并加载纹理。
我已经尝试使用像素图调整文件大小,但它需要整数作为尺寸,它会降低质量等...
我知道有人会说,为什么不像下面这样创建一个带有橙色图形的“点”对象,随机生成这些点并有时更改它们的 Alpha?这不是一个选项,因为我需要其他动画,如“雾”,它不能像点那样简单地编程。
也许有一种方法可以调整纹理、区域或其他东西的大小(当然使用 float 来保持纵横比)?
如果有人有任何想法,我应该如何在我的应用程序中使用巨大的 Sprite 表,我将非常感激:)
最佳答案
您的 Sprite 表的长度不应超过 2048*2048。
如果你想加载超过2048*2048的 Sprite 表,那么你必须单独加载每一帧。
假设,如果您的 Sprite 表包含 15 个帧,那么您必须有 15 个单独的 png 文件。
关于java - Libgdx - 如何加载一个巨大的 Sprite 表,使其不呈现黑色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38670881/