The life cycle - garsue/libgdx GitHub Wiki

libgdxアプリケーションにはよく考えられたライフサイクルがあり, アプリケーションの生成, ポーズと復帰, 描画と破棄といったアプリケーションの状態を管理しています.

ApplicationListener

アプリケーション開発者はこれらのライフサイクルのイベントを ApplicationListener インターフェイスを実装し, 特定のバックエンドの Application の実装(アプリケーションフレームワークを参照してください)にインスタンスを渡すことでフックできます. つまり Application はアプリケーションレベルでイベントが発生するごとに ApplicationAdapter を呼び出します. ApplicationListener の実装の骨組みは次のようになります.

public class MyGame implements ApplicationListener {
   public void create () {
   }

   public void render () {
   }

   public void resize (int width, int height) {
   }

   public void pause () {
   }

   public void resume () {
   }

   public void dispose () {
   }
}

すべてのインターフェイスメソッドが関係するわけではない場合, ApplicationAdapter クラスの派生クラスを作成するという方法もあります.

ApplicationListenerApplication に渡されると, そのメソッドは次のように呼び出されます:

メソッドシグニチャ 解説
create () このメソッドはアプリケーションが生成されたときに一度だけ呼び出されます.
resize(int width, int height) このメソッドはゲームがポーズ状態でないときにゲーム画面がリサイズされると毎回呼び出されます. また create() メソッドのあとでも一度呼び出されます.
パラメータはリサイズ後のスクリーンのピクセル単位の新しい幅と高さです.
render () このメソッドは描画されるたびにアプリケーションからゲームループによって呼び出されます. たいていの場合ゲームロジックもこのメソッドで実行されます.
pause () Androidではこのメソッドはホームボタンが押されたとき, または着信があったときに呼び出されます. デスクトップではアプリケーション終了時, dispose() の前に呼び出さるだけです.
ゲームの状態を保存するタイミングとしてちょうどいいです.
resume () このメソッドはアプリケーションがポーズから復帰したときに呼び出されます. このメソッドが呼ばれるのはAndroidだけです.
dispose () アプリケーションが破棄されるときに呼ばれます. このメソッドが呼び出される前に pause() が呼び出されます.

以下のダイアグラムはライフサイクルを図示したものです.

lifecycle

メインループはどこにあるか?

libgdxはAndroidとJavaScriptの動作方法に合わせているため, 最初からイベント駆動になっています. 明示的なメインループは存在しませんが, ``ApplicationListener.render()` メソッドはメインループの本体としてみなせます.

⚠️ **GitHub.com Fallback** ⚠️