libGDX のプロジェクトを生成してみる

Page content

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 を使うときは参考にしたい。