我在过去6个月左右一直在研究Android游戏,并且在这里发布了几次关于我无法摆脱的各种滞后问题。是不可能让Android游戏免费的吗?我在这里疯狂
我最终抓住了LunarLander的例子,并将其剥离到它的核心组件,看看我是否能够做任何不滞后的事情。它所做的只是更改画布每帧的翻译量,然后在画布上绘制背景。即使这样,你可以得到一个SurfaceView应用程序一样简单 - 口吃...
我的游戏是一个滚动游戏,你不断向上移动屏幕(想象飞行游戏),但我目前的方式做背景会导致大约50-100毫秒每秒不断的口吃。这不是游戏突破,但它非常分散注意力,使得游戏看起来好像是由一个完整的白痴编程的(尽管我开始怀疑这可能是这种情况)。
不,它不是垃圾收集器,在游戏的运行循环中根本没有创建新对象,并且GC在我的游戏运行时几乎没有运行。
我实际上把我的头发弄得沮丧。我花了超过40个小时,试图摆脱这个简单的应用程序例子在上个星期的滞后,这让我疯狂。应用程序如何与我所链接的应用程序一样简单可能存在滞后问题?你不会认为滚动的背景可能会比这更简单...
注意:这个演示在我的手机(摩托罗拉里程碑)上不断获得60fps左右。在示例中取消注释FPS代码以查看FPS。
TL; DR:非常简单的程序,只是一个滚动的背景显示口吃。请看看...
基于链路断LunarLander例如下载简单的口吃例如: http://dl.dropbox.com/u/4972001/LunarLander.rar
是否喷气男孩演示有口吃上运行时,您的手机? http://developer.android.com/resources/samples/JetBoy/index.html – jhouse 2011-02-04 16:04:32
Traceview告诉你什么?另外,在将来,请跳过火焰诱饵标题。 – CommonsWare 2011-02-04 16:12:40
对不起火焰诱饵,当我写出来的时候,我非常沮丧(因为我相信你可以说)。 Traveview没有什么特别之处。所有draw/updatePhysics调用之间有相同的间隔。这似乎是可见但不可衡量的东西,这是令人困惑的。另外,是的,JetBoy也有口吃问题。 – Smills 2011-02-04 16:18:15