サイトのトップへ戻る

libGDX ドキュメント 日本語訳

サイト内検索

アプリケーションフレームワーク

libgdx の中核部分は、OSとやり取りすることができる5つのインタフェースで構成されています。 各バックエンドにてこれらのインタフェースを実装します。

  • Application: アプリケーションを実行し、ウィンドウのサイズ変更といったアプリケーションレベルのイベントをAPIクライアントに通知します。ログ機能や、メモリ使用量などを参照するメソッドメソッドが使用できます。
  • Files: プラットフォームの基本的なファイルシステムへのアクセスを提供します。 Provides an abstraction over different types of file locations on top of a custom file handle system (Javaの File クラスとは全く別のものです).
  • Input: マウスやキーボードやタッチや加速度センサーのようなユーザーの入力イベントをAPIクライアントに通知します。 ポーリング処理とイベントドリブン処理の両方をサポートしています。
  • Net*: TCPサーバとクライアントソケットを作成するのはもちろん、クロスプラットフォームな方法で HTTP/HTTPSを介してリソースへのアクセスもできます。
  • Audio: PCM 音源の入力/出力のためにオーディオデバイスに直接アクセスするのはもちろん、効果音やストリーミング音楽の再生もできます。
  • Graphics: (使用可能な) OpenGL ES 2.0 へのアクセスを提供し、ビデオモードや同様のものへの照会/設定をできるようにします。


起動クラス

記述しなければいけないプラットフォーム固有のコードのことを起動クラスと呼びます。 対象とする各プラットフォームのために、そのプラットフォームのバックエンドで提供されるアプリケーションインタフェースの具体的な実装のインスタンスを作成するコードを記述します。 デスクトップの場合、Lwjgl を使用して以下のようになります:

public class DesktopStarter {
   public static void main(String[] argv) {
      LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
      new LwjglApplication(new MyGame(), config);
   }
}

Androidの場合、対応する起動クラスは以下のようになります:

public class AndroidStarter extends AndroidApplication {
   public void onCreate(Bundle bundle) {
      super.onCreate(bundle);
      AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
      initialize(new MyGame(), config);
   }
}

これら二つのクラスは、通常は別々のプロジェクト内(例えばデスクトッププロジェクトとAndroidプロジェクト)に存在します。 プロジェクトの設定、実行、デバッグ のページでEclipseの場合のこれらプロジェクトのレイアウトが説明されています。

アプリケーションの実際のコードはApplicationListener インタフェースを実装したクラス(上記の例ではMyGame クラス)に記述します。 このクラスのインスタンスはそれぞれのプラットフォームにて、各バックエンドのアプリケーション実装の初期化用メソッドに渡します(上記参照)。 アプリケーションでは適切なタイミングでApplicationListener のメソッドを実行します (ライフサイクルを参照してください)。

起動クラスの詳細については 起動クラスと設定を参照してください。



各モジュールにアクセスする

先ほど説明した各モジュールは、Gdx クラスの静的フィールドを介してアクセスできます。 これは、libgdxのモジュールに簡単にアクセスするための基本的なグローバル変数群です。 While generally viewed as very bad coding practice, we decided on using this mechanism to ease the pain usually associated with passing around references to things that are used often in all kinds of places within the code base.

例えば、audio モジュールにアクセスするには以下のように記述するだけです:

// creates a new AudioDevice to which 16-bit PCM samples can be written
AudioDevice audioDevice = Gdx.audio.newAudioDevice(44100, false);

Gdx.audio is a reference to the backend implementation that has been instantiated on application startup by the Application instance. アプリケーションを取得するGdx.app、ファイル実装にアクセスするGdx.filesなど、他のモジュールも同じ方法でアクセスします。

次へ