2016-04-27 4 views
4

私は見落としているこの簡単な解決策が必要だと思います。私は1つのオプションがFrameBufferであると思うが、それが最も良いかどうかはわからない。すべてのレンダーコールでバッテリを使用しないでバッテリを節約してください

私は抽選の際に集中的な計算が必要なパズルゲームに取り組んでいます。私は画面を更新しながらできるだけ少ない計算をするだけで済ませましたが、そのうちのいくつかは取り除くことができない、または取り除くのが面倒かもしれません。一方、ほとんどの場合、ユーザーは次の動きを把握しようとしている間に画面を見ており、画面には静止画像が表示されます。レンダリングコードを1秒間に60回実行するだけで、バッテリの無駄になります。

モデルに変更がないときに描画を防止する最も簡単な方法は何ですか?最後にレンダリングされたイメージを表示している間にlibGDXにレンダリングの呼び出しを一時的に停止させるか、またはこれを描画して画面に描画できる何らかの仮想スクリーンを持つように指示する方法はありますか?

私が言ったように、私はFrameBufferを知っていますが、このオブジェクトは私が達成しようとしているものよりも複雑なもののために使用されるように思われます。

答えて

3

オンデマンドでのみレンダリングするには、非連続レンダリングを使用します。詳細な手順here in the documentation.

、あなたのコード内onCreate()

Gdx.graphics.setContinuousRendering(false); 
Gdx.graphics.requestRendering(); 

そして、これを入れて行う新しいフレームは、このようなユーザ入力に応答のように(必要なときにはいつでもrequestRendering()を呼び出すための最も基本的なものがありますが、またはアニメーションが行われている間は継続的に)。

入力アクションが発生するたびに、Gdx.graphics.requestRendering()が一度呼び出されるため、入力プロセッサーとそれ以外のものはそれに刺し傷が付きます。そして、彼らが入力に応じて何かをするなら、彼らはそれを呼び出すべきです。

関連する問題