我建造了一个典型的侧卷轴直升机游戏。动画在新设备上滞后我遇到了一些麻烦。提供代码真的没有意义。解释它就足够了。
游戏使用Kilobolt框架。游戏的生命周期是恒定循环,只是根据沿途设置的变量重复绘制屏幕。意思是,无论状态/位置如何,它都会被绘制出来。因此,只需在任意数量的对象上设置x / y就可以轻松运行。屏幕在帧缓冲区中绘制,根本不使用XML。 每次重绘屏幕时,有45个图块会在X上更新。这真的不是很多。 我已经把所有的图形资产都放到了没有透明度的PNG-8上,以消除所有这些开销。
我没有性能问题,游戏效果很好,没有内存泄漏,错误或其他崩溃......
我唯一的问题是设备越新,游戏就越间歇性地滞后。我的意思是,它以恒定速度运行几秒钟,然后拖动一秒左右。但这只发生在较新的设备上。运行KitKat或更低版本的任何东西都运行100%而没有滞后。任何更高的东西都有麻烦。
我希望那里有人遇到这样的事情。我可以在清单中设置一些强制它在较低级别运行的东西吗?目前它的目标是14,4.0冰淇淋Sammich,至少8个。
这不是促销,但我including the Play link所以你可以亲自看看。
答案 0 :(得分:0)
由于您正在清除整个屏幕,它只是拒绝了性能,而是使用postInvalidate,它只会重新绘制更改的区域而不是整个屏幕,从而显着提高了性能。你可以参考这个 link