我正在与我的朋友合作开发我们的第一款Android游戏。基本思路是整个表面的每一帧都重绘(1个大位图),分两步:
数学引擎在C(JNI)中,目前所有绘图都是使用android.graphics包非常相似(因为这是我使用的例子)到Lunar Lander。 它有效,但动画有点生涩,我可以通过手机的温度感觉它很忙。转换到OpenGL会让我们受益吗?作为一个额外的问题:什么是优化我们现在拥有的绘图机制(Lunar Lander)的好方法?
答案 0 :(得分:6)
现在我已经开始使用OpenGL ES,我也会将它用于2D图形。这种方式最灵活,速度极快(看this example code。这是关于2D渲染的,你可以看到OpenGL的强大功能。
这不是最简单的事情,但有一些很好的教程 - 例如,this是一个非常好的教程。
答案 1 :(得分:3)
每次都不要重绘整个屏幕。这就是导致你的低帧率的原因。使用invalidate方法标记每个帧已更改的区域。