为什么libgdx中的游戏运行缓慢?
我正在用Libgdx制作赛车游戏。我的游戏apk大小是9.92MB,我使用的是四个纹理打包机,总大小是9.92MB。我的游戏在桌面上运行,但在android设备上运行非常慢。它背后的原因是什么?在编程时我们忽略了一些漏洞。 桌面处理器的功能更强大,因此游戏在桌面上运行平稳,但在移动设备上运行缓慢 以下是一些关键注意事项,您应该遵循这些注意事项以获得最佳游戏流程:为什么libgdx中的游戏运行缓慢?,libgdx,Libgdx,我正在用Libgdx制作赛车游戏。我的游戏apk大小是9.92MB,我使用的是四个纹理打包机,总大小是9.92MB。我的游戏在桌面上运行,但在android设备上运行非常慢。它背后的原因是什么?在编程时我们忽略了一些漏洞。 桌面处理器的功能更强大,因此游戏在桌面上运行平稳,但在移动设备上运行缓慢 以下是一些关键注意事项,您应该遵循这些注意事项以获得最佳游戏流程: 渲染方法中没有I/O操作 避免在渲染方法中创建对象 对象必须重复使用(例如,如果您的游戏有1000个平台,但在当前屏幕上,您只能显示3
祝你好运。你需要检查你的游戏图像大小。如果你的图像大小大于,请使用以下链接“”减小图像大小。
这将对您有所帮助。我有一些提高性能的额外提示:
顺便说一句,如果没有任何额外的信息,没有人会给你一个好的或准确的答案。如果您认为不值得为您的问题编写足够的文本或信息,为什么值得回答它?要真正了解游戏运行缓慢的原因,您需要分析您的应用程序 有免费的工具可用于此 在桌面上,您可以使用VisualVM。 在Android上,您可以使用Android监视器 通过分析,您会发现哪些方法占用的时间最多
速度减慢的一个可能原因是纹理绑定。你经常在不同的页面之间切换压缩纹理吗?在切换到另一页之前,试着从一页中画出所有内容。答案很可能是“电脑快;电话慢”。相反,需要注意的是,您的计算机Java VM很可能是Oracles非常优化的JVM,而您手机的Java VM很可能是Dalvik,更不用说它的性能了,它在对象创建和管理方面没有相同的优化
正如其他人所说,libGDX提供Pool类正是出于这个原因。看看这里:LibGDX中一个非常重要的事情是,您应该确保有时从内存加载资产不能进入render()方法。确保在正确的时间加载资源,并且它们不会出现在渲染方法中 另一个非常重要的事情是,尝试计算您的数学,使其独立于渲染,因为您的下一帧不应等待计算发生 这是我在制作过程中遇到的两个主要问题。
谢谢,
阿比吉特。我发现的一件事是,这幅画太长了。这意味着,如果您正在绘制屏幕外项目,那么它将使用大量无用的资源。如果你在画画之前只检查它们是否在屏幕上,那么你的表现会出人意料地提高很多。思考的要点(个人经验)
这些要点将对性能产生巨大影响(竖起大拇指)您需要提供更多信息。您是否尝试过隔离代码中占用时间最多的区域?这可能是由于你正在做的事情,但是我们不能不看代码。我的游戏在游戏屏幕上的性能非常慢。它有30多个类,我不知道是哪一部分导致了我的游戏速度慢。堆栈溢出不擅长这类问题。你需要一个档案器来回答你的问题:我不知道你是如何创建图像的,但也许你应该熟悉“抖动”(dither)并尝试优化你的图片。不,这只会缩小你的文件大小。当加载到GPU上时,内存使用量基本相同,因为GPU自己处理位图(无论如何,它会将位图作为位图存储在GPU内部)