Android:2D。 OpenGl还是android.graphics?

时间:2010-05-02 23:31:49

标签: android animation opengl-es 2d

我正在与我的朋友合作开发我们的第一款Android游戏。基本思路是整个表面的每一帧都重绘(1个大位图),分两步:

  1. 带有一些静态图像的背景(PNG)消除了前一帧
  2. 然后它遍布大量的颗粒,产生肥皂泡的效果,其中有一个约20位图的池,随机被挑选产生错觉,所有气泡(在200-300之间)都是不同的。每帧(~50ms)更新气泡位置,产生移动气泡的效果。
  3. 数学引擎在C(JNI)中,目前所有绘图都是使用android.graphics包非常相似(因为这是我使用的例子)到Lunar Lander。 它有效,但动画有点生涩,我可以通过手机的温度感觉它很忙。转换到OpenGL会让我们受益吗?作为一个额外的问题:什么是优化我们现在拥有的绘图机制(Lunar Lander)的好方法?

2 个答案:

答案 0 :(得分:6)

现在我已经开始使用OpenGL ES,我也会将它用于2D图形。这种方式最灵活,速度极快(看this example code。这是关于2D渲染的,你可以看到OpenGL的强大功能。

这不是最简单的事情,但有一些很好的教程 - 例如,this是一个非常好的教程。

答案 1 :(得分:3)

每次都不要重绘整个屏幕。这就是导致你的低帧率的原因。使用invalidate方法标记每个帧已更改的区域。