8

簡単な質問ですが、簡単な答えがあるかどうかはわかりません!!

サーフェスビューの描画を高速化するためにできることはありますか?

私は次のようなものを使用しています:

c.drawBitmap(scaledSprite, X, Y, redPaint);

私が使用している方法では、これらのスプライトを約25個画面に描画する必要があるため、forループを使用しています。つまり、フレーム中に25個を表示する必要があります。

さて、これは私がテストした3台の電話では完全に正常に機能しますが、タブレットでは速度が低下します。私は他のすべての描画方法をコメントアウトし、これだけを残しました、そしてこれは間違いなくゲームを遅くしているものです。

これをスピードアップするために誰かが私に与えることができる賢いヒントはありますか?

私はオープンGLが可能性があることを知っていますが、ゲームの大部分は現在書かれているので、私がそれを助けることができれば、今は大幅な変更を加えたくありません。

4

1 に答える 1

7

SurfaceView を低品質のグラフィックに設定した場合

getHolder().setFormat(0x00000004); //RGB_565

すべてのビットマップを同じ構成にロードします

Options options = new BitmapFactory.Options();
options.inScaled = false; 
options.inPreferredConfig = Bitmap.Config.RGB_565;

これにより速度が速くなり、フレーム遅延に応じてスプライトの移動速度を可変にする必要があります。

ただ、この設定でもスプライトが多いアーケードゲームはタブレットではうまく動かないので、ちゃんと売れるゲームを作りたいのであれば、OpenGlのフレームワークを作るか既製のものを使うしかないと思います。

于 2013-01-30T23:03:16.823 に答える