【发布时间】:2010-03-21 13:00:15
【问题描述】:
目前,我正在为我的国际象棋游戏使用 SurfaceView 进行动画实验。我在模拟器中只得到大约 8 FPS。我画了一个棋盘和 32 个棋子并旋转所有东西(看看它有多平滑),我正在使用抗锯齿。在 Droid 上,我得到了大约 20FPS,所以它不是很流畅。不使用OpenGL,是否可以实现一个动画非常稀少且简单的游戏?
这是我每一帧都做的:
// scale and rotate
matrix.setScale(scale, scale);
rotation += 3;
matrix.postRotate(rotation, 152, 152);
canvas = surfaceHolder.lockCanvas();
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.FILTER_BITMAP_FLAG));
canvas.setMatrix(matrix);
canvas.drawARGB(255, 255, 255, 255); // fill the canvas with white
for (int i = 0; i < sprites.size(); i++) {
sprites.get(i).draw(canvas); // draws chessboard and chess pieces
}
【问题讨论】:
-
如果你打算使用动画,我认为你应该使用 openGL。没有抗锯齿,你的游戏能快多少?这可能是一个巨大的资源消耗。您也可以在 NDK 中进行 openGL 绘图。并且不要将模拟器的速度作为真实设备的标志。
标签: java android opengl-es chess surfaceview