3

私は単純なゲームループをまとめました。主に、Javaの本のKiller Game Programmingとこのチュートリアルで、よく見られるテクニックを使用しています。ここ では、バックバッファーを備えた単純なタイミングのゲームループです。

問題は、適切なFPSで画面が再描画されないことです。Motorola Xoomから得られる最高のものは15FPSで、24を目指しています。

バックバッファの半分のサイズの場合、速度がかなり上がるので、問題はXoomの画面の利用に関係している可能性があると推測しています(SurfaceViewのサイズは1280x727です)...さらに他のゲームが見られます同じサイズで完璧に動作します。

テストするデバイスが他にないので、現時点で何をすべきかについて少し行き詰まっています。

私は何を間違っている/行方不明/無知なのですか?

4

2 に答える 2

10

ビットマップとサーフェスのピクセル形式が異なるため、ビットマップを描画するたびに変換が発生する可能性がありますか? それは確かにオーバーヘッドを誘発します。SurfaceHolder.setFormat()を試してみて、それが役立つかどうかを確認してください。

ビットマップは を使用してBitmap.Config.ARGB_8888いるため、サーフェス ホルダー フォーマットを に設定してみてくださいPixelFormat.RGBA_8888Bitmap.Config.RGB_565または、可能であれば、 、および を使用してみてくださいPixelFormat.RGB_565

于 2011-08-12T21:57:47.957 に答える
0

いくつかのコードが必要になりますが、スレッドを使用していないと思われますか? スレッドを使用していない場合、すべての処理が同じスレッド上にあるため、プログラムが不安定になり、頻繁にクラッシュします

要するに、新しいスレッドを作成したことを確認してください。とにかくスレッドを必要とするOpenGLを使用しているため、それがダウンするための最良のルートである可能性があります

于 2011-08-06T14:22:24.253 に答える