在我的libgdx游戏中,我使用了很多“沉重”的图形。这是一个巨大的画布与许多帧的动画。这幅油画的分辨率大于1000*1000。有很多这样的图形(函数loadTextures()大约有200行代码)。即使在高端设备上,加载游戏也需要很长时间,而在大多数情况下,弱设备游戏甚至无法加载和挂起加载图形。
如何优化所有这些东西?你怎么解决这样的问题?
发布于 2013-08-01 19:45:20
首先,确保你的纹理永远不会超过1024x1024的大小,并且总是使用二维的力量。如果您有多个较小的(或非锅)纹理,将它们打包成一个更大的纹理(最大为1024x1024max)。
拥有许多纹理(每个1024x1024 )将消耗大量的内存,因此您可能应该重新考虑您的方法。例如,您可以在游戏中的特定点(调用AssetManager();然后,在一定程度上控制垃圾收集器)加载/卸载纹理(使用System.gc)。
如果这是不可能的(例如,所有纹理都用于相同的动画),例如,考虑缩小纹理,只动画实际改变或使用骨骼动画(例如,看看脊柱,http://esotericsoftware.com/)。
对于你的情况,最好的方法可能会有所不同。但通常,如果需要多个纹理,请考虑以下指导原则:
https://stackoverflow.com/questions/18001516
复制相似问题