什么是Android游戏的最佳格式以获得最佳性能?

时间:2012-03-22 15:28:38

标签: java android surfaceview

我正在使用SurfaceView类编写一个小型Android游戏。分类的概要如下

   class GameView extends SurfaceView implements Runnable {
    Thread drawThread;
    boolean drawThreadIsRunning;
    Context context;
    SurfaceHolder surfaceHolder;
    Canvas canvas;

    public GameView(Context context)
  {
   super(context)
   this.context = context;
   surfaceHolder = getHolder();
   //...
  }

    public void resume() {
        // starts drawing Thread
    }

    public void pause() {
        // stops drawing Thread
    }

    public void run() {
        while (drawThreadIsRunning) {
            if (!surfaceHolder.getSurface().isValid())
                continue;

            canvas = surfaceHolder.lockCanvas();
            update(canvas);
            surfaceHolder.unlockCanvasAndPost(canvas);
        }
    }

    private void update(canvas)
   {
     updateCoordinates(canvas);
     updateDrawings(canvas); 
     e.t.c.
   }
}

我想知道的是,以我的方式使用update()方法是否是个好主意。在画布的锁定和解锁之间,更新方法移动游戏元素,绘制它们,更新分数等。这会对性能产生负面影响吗?有没有更好的方法来构建它?

1 个答案:

答案 0 :(得分:1)

对我来说很好看。你唯一能做的就是将调用转移到updateCoordinates(); updateDrawings();等等进入run()以节省额外方法调用的开销,但不应该产生明显的差异。