2017-03-14 15 views
0

私は表面上に描画するゲームスレッドを持っています。ゲーム変数を処理し、キャンバスに描画します。 ボードは、ビューのキャンバスに描画されるビットマップです。 callDrawHelperは最初に簡単にの背景イメージ(ボードと同じサイズ)を再描画します。次にクラスタリストは、ゲーム変数データに基づいてキャンバス上に描画される画像のセットを有する。このプロセス全体が各フレームを実行します。drawBitmapのパフォーマンスとゲームスレッドのフレームレート(アンドロイド)を改善しました。

callDrawHelperはスレッド処理の最高コンポーネントである80ミリ秒に近づきます。これは実際にフレームレートも低下させます。このコードセグメントのパフォーマンスを向上させるにはどうすればよいですか。

protected void callDrawHelper() { 

    Canvas gfx = drawJustBackground(); 
     for (int i = 0; i < clusters.size(); i++) { 

      PieceCluster cluster = clusters.get(i); 
      if (cluster.isVisible) { 
       gfx.drawBitmap(cluster.Picture, cluster.BoardLocation.left, 
         cluster.BoardLocation.top, null); 
      } 
     } 


} 

protected Canvas drawJustBackground() { 
    Canvas gfx = new Canvas(board); 
    gfx.drawBitmap(background, 0, 0, null); 
    return gfx; 
} 

答えて

関連する問題