libGDXはマルチプラットフォーム対応のため、(プラットフォーム共通の)ゲームロジックの実装と、各プラットフォームに依存する実装は分離されています
セットアップツールを使い、プロジェクトを作成すると以下のようなディレクトリ構造にてプロジェクトが作成されます
(セットアップツールの "suprojects"の設定にて、 "Desktop"、 "Android"、 "Ios"、 "Html"の4つすべてを選択した場合になります)
セットアップツールを使い、プロジェクトを作成すると以下のようなディレクトリ構造にてプロジェクトが作成されます
(セットアップツールの "suprojects"の設定にて、 "Desktop"、 "Android"、 "Ios"、 "Html"の4つすべてを選択した場合になります)
"android"、 "desktop"、 "html"、 "ios"の各ディレクトリには、それぞれのプラットフォーム毎の実装、設定などを含みます
例えば、 "android"ディレクトリには "AndroidManifest.xml"ファイル、 "ios"ディレクトリには "Info.plist.xml"ファイルなどがあります
これらのプラットフォームの違いを吸収するため、 libGDX は次の5つのインターフェイスを用意しています
- Application… ライフサイクル、ウィンドウ管理などのアプリケーションレベルイベントインターフェイス
- Files… ファイルシステムインターフェイス
- Input… マウス、キーボード、タッチイベントや加速度センサーなどの入力イベントインターフェイス
- Net… HTTP(S) 、 Socket 通信などのネットワークインターフェイス
- Audio… PCM 入出力などのオーディオインターフェイス
- Graphics… OpenGL ES 2.0、3.0 インターフェイス
これらのインターフェイスを利用することで、開発者は個々のプラットフォームの差を意識することなく、実装を行うことができます
なお、プラットフォームによっては提供されていない機能や未実装の機能(2014年4月現在では iOS プラットフォームではコンパスが利用できないなど)が存在するため、すべての機能が共通して利用できるというわけではないので、ご注意ください