サイトのトップへ戻る

libGDX ドキュメント 日本語訳

サイト内検索

連続描写と非連続描写

libgdxの既定では、描写スレッドはApplicationListener クラスのrender()メソッドを継続的に実行し続けます。実行される頻度はハードウェアの性能によって変わります(1秒間に30~50~80回)。

あなたが作成したゲーム(カードゲームなど)にとってこのフレーム描写回数が多すぎるのであれば 、連続描写を無効にして本当に必要な時だけ実行することでバッテリー電力を減らすことができます。

必要なのは、ApplicationListenerの create() メソッド内で以下の行を追加することだけです

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

一行目では、ゲームに対してrender()メソッドを自動的に実行しないよう指示しています。 二行目では、render() メソッドを一回実行しています。 render()メソッドを実行したい任意の場所で、二行目のコマンドを実行する必要があります。

連続描写に falseが設定された場合、 render() メソッドは以下の事象が発生したタイミングでのみ実行されます。

  • input イベントが発生する
  • Gdx.graphics.requestRendering() が実行される
  • Gdx.app.postRunnable() が実行される

UI アクション: 既定のダイアログフェードインやフェードアウトのように、多くのアクションではそれが発生するまでの描写時間があります。 これは既定では有効になっています。無効にするには以下を実行します:

Stage.setActionsRequestRendering(false);

この話題に関する良い記事: http://bitiotic.com/blog/2012/10/01/enabling-non-continuous-rendering-in-libgdx

公式libgdx ブログの投稿: http://www.badlogicgames.com/wordpress/?p=2289