简单的问题,不确定是否有一个简单的答案!!
我能做些什么来加速我的表面视图绘制?
我正在使用这样的东西:
c.drawBitmap(scaledSprite, X, Y, redPaint);
我正在使用的方法必须在屏幕上绘制大约25个这些精灵,所以我使用for循环,这意味着它必须在一帧中显示25个。
现在,这在我测试过的3款手机上运行得非常好,但在平板电脑上,它只是放慢速度。我已经评论了所有其他的绘图方法,只留下了这个,这绝对是让游戏变慢的原因。
有没有任何聪明的提示,任何人都可以给我加快速度?
我知道开放GL是一种可能性,但现在大部分游戏都已编写好,所以如果我能帮助它,我现在不想做任何重大改变。
答案 0 :(得分:7)
如果将SurfaceView设置为较低质量的图形
getHolder().setFormat(0x00000004); //RGB_565
并在同一个配置中加载所有位图
Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inPreferredConfig = Bitmap.Config.RGB_565;
这会使它更快,而且你需要根据帧延迟来制作精灵的可变移动速度。
然而,即使使用这些设置,具有许多精灵的街机游戏也无法在平板电脑上正常运行,因此,我担心,如果您想制作适当的游戏,您必须创建一个OpenGl框架或使用现成的的。