【问题标题】:What's the best format for an Android game for optimal performance?什么是最佳性能的 Android 游戏的最佳格式?
【发布时间】:2012-03-22 15:28:37
【问题描述】:

我正在使用 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() 方法是否是个好主意。在画布的锁定和解锁之间,update 方法移动游戏元素,绘制它们,更新分数等等。这会对性能产生负面影响吗?有没有更好的结构方式?

【问题讨论】:

    标签: java android surfaceview


    【解决方案1】:

    我觉得很好。您唯一能做的就是将调用移至 updateCoordinates();更新绘图();等进入 run() 以节省该额外方法调用的开销,但它不应该产生明显的差异。

    【讨论】:

    • 我没有注意到这一点。这确实更有意义。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    相关资源
    最近更新 更多