2013-02-23 45 views
0

我正在做一个非常类似于庞的简单游戏。游戏中的主要机制包括滑动屏幕以在背景上绘制图像,然后在这两件事情上绘制精灵。安卓绘制图像性能

我遇到性能问题,以及林不知道为什么。我禁用了除绘制前景图像之外的所有绘图功能(在背景之上但在精灵之下)。这是造成这个问题的原因。

im使用前景图像是一个30KB PNG。我在启动时只加载一次图像(RGB565格式),然后使用:

@Override 
public void drawImage(Image Image, int x, int y) { 
    canvas.drawBitmap(((AndroidImage)Image).bitmap, x, y, null); 

在我的Draw方法中将图像绘制到画布。由于某种原因(运行在我的Nexus 7上),此操作非常缓慢。如果我使用drawRect方法,它会完美运行,所以它与我绘制导入图像的方式有关。 drawBitmap是一个不好的方法来做到这一点?我是否需要为这样一个简单的游戏学习这个OpenGL的东西?

感谢您的任何建议。

回答

0

如果任何人有这个问题,我的情况可能是相关的,但可能不会。

我使用的是4MB wav文件作为我的主题曲扉页,忘了比赛开始时释放内存。我现在得到流畅的fps!

0

当你的代码段很短,我不知道你怎么称呼这种方法。

如果你要画一个非常敏感的视图,你应该使用SurfaceView绘制中的onDraw(帆布油画)方法的内容。

既然你正在写一个游戏,乒乓球的位置多久更新一次?此更新是在AsyncTask还是Runnable中执行的?只有在更新了精灵的位置时,才能通过调用invalidate()来减少onDraw的过度调用。