over 6 years ago

libGDX ではアプリケーションのライフサイクルを六つ定義している。

  • create
  • render
  • resize
  • pause
  • resume
  • dispose

このライフサイクルにしたがってアプリケーションを作るためのインターフェースが ApplicationListener である。

ApplicationListener

libGDX では、ApplicationListener を実装したクラスが必要になる。各プラットフォームで用意されたスタータークラスからこのインターフェースを実装したクラスが呼ばれるためだ。このクラスはlibGDXゲームの核になる。

package com.badlogic.drop;

import android.os.Bundle;

import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

public class MainActivity extends AndroidApplication {
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
      cfg.useGL20 = true;
      cfg.useAccelerometer = false;
      cfg.useCompass = false;

      initialize(new Drop(), cfg);
   }
}

Android アプリケーションの場合、AndroidApplication を実装したサブクラスから initialize により ApplicationListener を実装したクラスを見つける。AndroidApplication を実装したサブクラスは libGDX のセットアップツールを使えば自動的に生成される。

サンプルアプリケーションの一部では ApplicationListener を実装したクラスを用意しそこにすべての処理を記述しているが、他のデモプログラムで Game クラスのサブクラスを利用する場合もよく見受けられる。 Gameクラスは、 ApplicationListener を実装したクラスで、マルチスクリーン(メニュー画面、ゲームオーバー画面など複数画面持つ)ゲームでの利用に適している。

create

このメソッドは、ゲームの初期設定をするために呼ばれる。ゲームで使用する画像、BGM、効果音などのリソースをロードしたり、スプライトを用意したりなどする。

render

もっとも重要なメソッドはrenderだろう。renderはゲームのメインループを表現するもので、アプリから常に呼び出される。ゲームロジックの更新はここで行う必要がある。

後は、wikiに記載のとおり。

libGDX - マルチスクリーン →