8

简单的问题,但不确定是否有简单的答案!

我能做些什么来加快我的表面视图绘图吗?

我正在使用这样的东西:

c.drawBitmap(scaledSprite, X, Y, redPaint);

我使用的方法必须在屏幕上绘制大约 25 个这样的精灵,所以我使用了 for 循环,这意味着它必须在一帧中显示 25 个。

现在,这在我测试过的 3 部手机上运行良好,但在平板电脑上,它只会变慢。我已经注释掉了所有其他的绘图方法,只留下了这个,这绝对是拖慢游戏速度的原因。

任何人都可以给我任何聪明的提示来加快速度吗?

我知道开放 GL 是一种可能性,但现在大部分游戏都是编写的,所以如果我能提供帮助,我现在真的不想做任何剧烈的改变。

4

1 回答 1

7

如果您将 SurfaceView 设置为较低质量的图形

getHolder().setFormat(0x00000004); //RGB_565

并在同一配置中加载所有位图

Options options = new BitmapFactory.Options();
options.inScaled = false; 
options.inPreferredConfig = Bitmap.Config.RGB_565;

这会使其更快,而且您需要根据帧延迟使精灵的移动速度可变。

但是,即使使用这些设置,具有许多精灵的街机游戏也无法在平板电脑上正常运行,因此,恐怕如果您想制作一款适合销售的游戏,您必须创建一个 OpenGL 框架或使用现成的框架。

于 2013-01-30T23:03:16.823 回答