首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓。libgdx。加载大量图形

安卓。libgdx。加载大量图形
EN

Stack Overflow用户
提问于 2013-08-01 18:12:59
回答 1查看 1.2K关注 0票数 0

在我的libgdx游戏中,我使用了很多“沉重”的图形。这是一个巨大的画布与许多帧的动画。这幅油画的分辨率大于1000*1000。有很多这样的图形(函数loadTextures()大约有200行代码)。即使在高端设备上,加载游戏也需要很长时间,而在大多数情况下,弱设备游戏甚至无法加载和挂起加载图形。

如何优化所有这些东西?你怎么解决这样的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 19:45:20

首先,确保你的纹理永远不会超过1024x1024的大小,并且总是使用二维的力量。如果您有多个较小的(或非锅)纹理,将它们打包成一个更大的纹理(最大为1024x1024max)。

拥有许多纹理(每个1024x1024 )将消耗大量的内存,因此您可能应该重新考虑您的方法。例如,您可以在游戏中的特定点(调用AssetManager();然后,在一定程度上控制垃圾收集器)加载/卸载纹理(使用System.gc)。

如果这是不可能的(例如,所有纹理都用于相同的动画),例如,考虑缩小纹理,只动画实际改变或使用骨骼动画(例如,看看脊柱,http://esotericsoftware.com/)。

对于你的情况,最好的方法可能会有所不同。但通常,如果需要多个纹理,请考虑以下指导原则:

  • 在启动时,只加载整个游戏或主/菜单屏幕所需的纹理。
  • 当切换屏幕(级别)时,卸载不再需要的纹理,并加载特定于该屏幕/leveen的纹理(同时,您可以显示加载屏幕)。
  • 避免使用尺寸过大的纹理(例如,当纹理在屏幕上实际呈现为200x200时加载1024x1024纹理是浪费内存)
  • 避免加载部分相同的纹理(例如,当有多个面部图像,其中只有眼睛是不同的,考虑将脸分成头部和单独的眼睛图像)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18001516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档