libGDX のプロジェクトを生成してみる
libGDX を少しずつ触ってみる。
libgdx Setup App を使うと、Gradle ベースのプロジェクトを生成することができる。
起動すると、次のようなアプリケーションが起動する。必要なオプションを設定し、 Genarate
ボタンを押す。
そうすると Destination
のパスに成果物ができる。今回は Android SDK はインストールしていないため、Android のチェックは外し、生成する。
さて、生成されたディレクトリを見ていく。 IntelliJ IDEA Community を使って、そのディレクトリを開く。
トップの第一階層は次のようなファイルがある。それぞれの実行環境ごとにディレクトリがある。 desktop や ios、 html に分かれており、 他に core というディレクトリがある。 それぞれの環境に依存するコードは desktop や ios、 html に書かれ、中心となるコードは core に書くと言ったところだろう。
./test/
├── core
├── desktop
├── gradle
├── html
└── ios
では desktop のコードを確認する。
ファイルは test/desktop/src/com/mygdx/game/desktop/DesktopLauncher.java
である。中身は次の通り。
config は環境に依存するものを定義するもので、ゲームの本体は MyGdxGame
だろう。
package com.mygdx.game.desktop;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.mygdx.game.MyGdxGame;
public class DesktopLauncher {
public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
new LwjglApplication(new MyGdxGame(), config);
}
}
そのゲームの本体の実装と思われる MyGdxGame
はどこにあるかというと、 core にある。
ファイルは test/core/src/com/mygdx/game/MyGdxGame.java
。中身は次の通り。
ApplicationAdapter
を継承したクラスを作り、ゲームで必要な準備処理・描画処理・後始末処理が記述されている。
package com.mygdx.game;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
@Override
public void create () {
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(img, 0, 0);
batch.end();
}
@Override
public void dispose () {
batch.dispose();
img.dispose();
}
}
このソースコードで参照されている画像は、test/core/assets/badlogic.jpg
にある。
core の配下に assets が置かれている。
さて、ここまでテンプレートプロジェクトをざっと見てきた。 オフィシャルのツールによるものだから、ディレクトリ構成はこれが一般的なものなんだろう。 これから libGDX を使うときは参考にしたい。