gpt4 book ai didi

java - 如何减少 libgdx 中 2D Sprite 的高 RAM 使用率

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:46:52 25 4
gpt4 key购买 nike

我们的项目遇到了非常高的 RAM 使用情况。我们使用 java、libgdx 和许多 Sprite 。

我们想将我们的 sprite 升级到 81 帧 512x512 as png,并且由于我们的实体是组合的 sprite( body 、头部、头发、武器、衣服),我们想一次给一些实体一些变化我们讨论了 500 到 1000 个可能会(在极端情况下)彼此并行/快速使用的 Sprite 。我们尝试了几个(~10)个这样的 Sprite ,它使用了 6GB 以上的 RAM,所以它不可能太多了。

我们现在已将分辨率缩小到 128x128(尽管我们更喜欢 256),并将帧数缩小到 25(这意味着重复动画更多)。我们研究了一些进一步减少 ram 使用的方法,但不确定哪些方法效果好。

项目描述:静态对象的 tilemap + 额外的实体阶段。我们希望在缩小时在屏幕上一次看到多达 30 个左右的实体(x5 Sprite ),在放大时仍然有几个。

最佳答案

如果您还没有这样做,一种方法是将所有 Sprite 放在一个图像( Sprite 表)中,like this .

这减少了所需的元数据量和单独加载的图像数量,因此 RAM 使用量也会减少。然后你只需要一个 sprite sheet 加载器,许多示例可以通过简单的谷歌搜索找到。

另一种方法是不将所有 Sprite 一起加载,只加载每个级别或同等级别所需的 Sprite 。

您必须有非常多的 sprite 才能使用那么多的 RAM。我会检查您的代码以确保您不会意外地多次加载它们。最常见的做法是在游戏循环中加载代码。

此外,对于每种类型的实体,只在静态上下文中加载一次 Sprite 。

关于java - 如何减少 libgdx 中 2D Sprite 的高 RAM 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51876008/

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