Android:2D。 OpenGl或android.graphics?

我正在和我的朋友在我们的第一个Android游戏上工作。 基本的想法是,整个表面的每一帧都被重新绘制(1个大的位图),分两步进行:

  1. 背景与一些静态图像(PNG)抹去了前一帧
  2. 然后撒满大量的颗粒,产生肥皂泡的效果,其中有大约20个位图的池随机挑选,产生所有泡沫(200-300)都不相同的错觉。 气泡位置更新每帧(〜50ms)产生移动气泡的效果。

math引擎是C(JNI),目前所有的绘图都是使用与Lunar Lander非常相似的(因为那是我使用的例子)的android.graphics包来完成的。 它的工作,但animation是有点生涩,我可以感受到我的手机的温度,这是非常繁忙。 我们将从切换到OpenGL中受益吗? 作为一个奖励问题:如何优化我们现在拥有的绘图机制(Lunar Lander)?

Solutions Collecting From Web of "Android:2D。 OpenGl或android.graphics?"

现在我已经开始使用OpenGL ES,我也将其用于2Dgraphics。 这种方法是最灵活的,速度非常快(请看这个例子代码 ,它是关于2D渲染的,在这里你可以看到OpenGL的强大function。

开始并不是最简单的事情,但是有一些很好的教程 – 例如, 这是一个很好的教程。

每次不要重画整个屏幕。 这是导致你的低帧率。 使用invalidate方法来标记每帧改变的区域。