如何减少libgdx

时间:2018-08-16 11:30:35

标签: java libgdx sprite game-development

我们的项目遇到了很高的RAM使用率。我们使用Java,libgdx和许多精灵。

我们想将精灵升级为512x512的81帧(png),因为我们的实体是合并的精灵(身体,头部,头发,武器,衣服),并且我们希望一次对多个实体进行一些改动我们讨论了500-1000个可能相互并行/快速使用的Sprite(在极端情况下)。我们尝试了其中的几个(〜10)个精灵,它使用了6 GB以上的RAM,因此,这个问题实在是太多了。

我们现在将分辨率减小为128x128(尽管我们更希望为256),并将帧数减小为25(这意味着更具重复性的动画)。我们已经研究了一些进一步减少ram使用率的方法,但不确定哪种方法能很好地工作。

项目描述:静态对象的tilemap +其他实体阶段。缩小时,我们预计一次可以在屏幕上看到多达30个左右的实体(x5个精灵),放大时,又可以看到几个。

1 个答案:

答案 0 :(得分:1)

如果还没有做的话,一种方法是将所有的精灵放在一张图像(精灵表)like this中。

这减少了所需的元数据数量和单独加载的图像数量,因此RAM使用率也将降低。然后,您只需要一个Sprite Sheet loader,即可通过简单的Google搜索找到许多示例。

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

要使用那么多RAM,必须有很多精灵。我会检查您的代码,以确保您不会意外加载它们。最常见的方法是在游戏循环中加载代码。

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