2012-03-22 8 views
2

私はSurfaceViewクラスを使用して小さなAndroidゲームを作成しています。最適なパフォーマンスを得るために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. 
    } 
} 

を次のようにCLASの概要については、私が知りたいのは何であることは、それは私が持っている道update()メソッドを使用することをお勧めしますかどうかです。キャンバスのロックとアンロックの間で、updateメソッドはゲーム要素を移動し、描画し、スコアを更新します。これがパフォーマンスに悪影響を及ぼしますか?これを構造化するより良い方法はありますか?

答えて

1

私にはうまく見えます。あなたができる唯一のことは、呼び出しをupdateCoordinates()に移すことです。 updateDrawings();追加のメソッド呼び出しのオーバーヘッドを節約するためにrun()に追加しますが、目立った違いはありません。

+0

私は気づいていませんでした。それははるかに理にかなっています。ありがとう:) –

関連する問題