奇怪的口吃问题,我无法摆脱(包括完整的来源)

Smi*_*lls 9 java android

我将我的游戏基于农场的例子,并且自从我第一次开始制作它以来一直存在口吃问题.我没有尝试过任何东西已经摆脱它们所以我已经达到了我花了几个小时创建一个简化版的lunarlander示例,然后放入一个简单的滚动图像来显示口吃的地步.注意:它与垃圾收集器无关.如果您认为是这样,只需查看日志,垃圾收集器就会在出现断断续续的时间点附近运行.

向下滚动屏幕的图像大约每秒钟在我的手机上大约1/10秒钟停顿(Motorola Milestone,2.2).这种口吃并不能完全摧毁游戏玩法,但却令人分心,令人沮丧.我的游戏还涉及很多快速滚动和快速移动,所以它通常更明显.

如果你有任何人有时间,你可以快速看看这个日食项目,看看是否:

  1. 它在你的手机上为你口吃(看起来滚动时,它每半秒到一秒半有一个小故障)
  2. 如果你能看到任何方法来解决口吃问题

我希望我只是有一个延迟的代码行,导致整个事情没有我意识到.我无法相信即使在剥离了这么多之后它仍然具有与我的完整游戏1000个对象完全相同的口吃,特别是因为它在我的手机上以稳定的60fps运行.

编辑:在Traceview上描述了我的游戏,看起来很好.

来源下载链接:http://dl.dropbox.com/u/4972001/LunarLander.rar

Ted*_*opp 0

听起来您的滚动会产生大量垃圾,需要经常收集。如果您要创建大量短期小对象,请考虑管理自己的对象池。只要您不让池无限制地增长,就可以大大减少 gc 抢占您的时间。