libGDX 1.0以降でのプロジェクト作成方法(Gradle＋Eclipse)

　マルチプラットフォーム対応ゲームエンジンである[libGDX](http://qiita.com/fslasht/items/6afc8aabde56f42c651a)の[1.0がついにリリース](http://www.badlogicgames.com/wordpress/?p=3412)されました。
　※ 2014/5/6現在、[1.0.1](http://www.badlogicgames.com/wordpress/?p=3432)までリリースされています。
　1.0前後で様々な改良がなされていますが、ビルドシステムがGradleになったためプロジェクトの作成方法、Eclipseへのインポート方法が変更されています。
　まだ日本語での解説ページがありませんでしたので手順を書いておきます。

　ここではWindows＋Eclipseの使用を前提とします。
　プロジェクト作成ツールは [gdx-setup.jar](https://bitly.com/1i3C7i3) です。

## 公式サイトでの解説
英語ですが公式サイト見るのが一番ですね…
[Getting started](http://libgdx.badlogicgames.com/documentation.html#gettingstarted)

以下の日本語が怪しい時は公式サイトも確認してみてください。


# 環境作成方法
(公式サイトでの解説はこちら)
[Setting up your Development Environment (Eclipse, Intellij IDEA, NetBeans) ](https://github.com/libgdx/libgdx/wiki/Setting-up-your-Development-Environment-%28Eclipse%2C-Intellij-IDEA%2C-NetBeans%29)

## 事前準備
このへんは既にEclipseでAndroidアプリを開発していれば完了しているでしょうし、解説も多いので割愛します。

1. JDK7以降をインストール
2. Eclipseをインストール
3. Android SDKをインストール
4. Android Development Tools for Eclipse(ADT)をインストール


## Gradleのための準備

### 環境変数JAVA_HOMEを設定
　最近はJAVA_HOMEの設定は不要な事が多いですが、Gradleでは要求されますので設定してください。
　コントロールパネルのシステム詳細設定の環境変数にて以下のように追加してください。
![スクリーンショット 2014-05-07 17.48.20.png](https://qiita-image-store.s3.amazonaws.com/0/42140/fe551497-de0b-de42-6633-6eacde04d11d.png)


### GradleプラグインをEcliseにインストール
　Eclipseを起動しメニューの「ヘルプ」→「新規ソフトウェアのインストール」を選択
![スクリーンショット 2014-05-07 17.42.24.png](https://qiita-image-store.s3.amazonaws.com/0/42140/8aab1f79-85d9-0607-771a-4285070382ab.png)

　[追加] ボタンを押す
![スクリーンショット 2014-05-07 16.03.40.png](https://qiita-image-store.s3.amazonaws.com/0/42140/eff42984-b9e2-e309-a99e-80795ca6c8fd.png)

　ロケーションに `http://dist.springsource.com/release/TOOLS/gradle` と入力。

　[OK] ボタンを押す

![スクリーンショット 2014-05-07 16.01.03.png](https://qiita-image-store.s3.amazonaws.com/0/42140/6a4ddc87-8a34-53e2-d4b7-84aca2c0626c.png)
　[Gradle IDE]を選択

　[次へ] ボタンを押して、あとは流れでおねがいします。　

# プロジェクト作成

※ `gdx-setup-ui.jar`ではなく`gdx-setup.jar`を使用しますので注意。

## プロジェクト作成ツールのダウンロード
以下のURLから`gdx-setup.jar`をダウンロードして下さい。
[Download gdx-setup.jar](https://bitly.com/1i3C7i3)

　ダウンロードしたファイルは、Eclipseのワークスペースにおいておくと便利です。
　また、libGDXのプロジェクトは対象OSごとに作られて数が膨大になるので、専用のワークスペースを作成することをおすすめします。
　手順の中では「workspace_libgdx」というワークスペースで作業しています。


## `gdx-setup.jar`を実行
`gdx-setup.jar`をダブルクリックで実行します。
以下の様なツールが起動します。

![スクリーンショット 2014-05-07 15.41.06.png](https://qiita-image-store.s3.amazonaws.com/0/42140/32d8bdfb-4ce1-c8c3-2caa-8fb4b4df827f.png)

ここでは「GdxAppWithSeveralMsgBox」というプロジェクトを作ることを前提に以下のように設定します。

* Name(プロジェクト名): GdxAppWithSeveralMsgBox
* Packege(パッケージ名): com.dokokano.gdxappwithseveralmsgbox
* Destination(プロジェクト作成フォルダ): C:\workspace_libgdx\GdxAppWithSeveralMsgBox
* Android SDK: ※AndroidSDKをインストールしたフォルダを指定

![スクリーンショット 2014-05-07 15.46.01.png](https://qiita-image-store.s3.amazonaws.com/0/42140/49b372ec-5666-7f37-7e8c-f2ffcb308fc2.png)

※ 必要に応じてBox2Dなどのエクステンションをチェックしてください。

[Genarate]ボタンをクリックするとプロジェクトが作成されます。

以下の様なメッセージが表示されれば成功です。

```
Generating app in C:\workspace_libgdx\GdxAppWithSeveralMsgBox
Executing 'C:\workspace_libgdx\GdxAppWithSeveralMsgBox/gradlew.bat clean'
```

# プロジェクトのインポート
Eclipseのメニューの「ファイル」→「インポート」
「Gradle」→「Gradle Project」を選択
※ 「一般」→「既存プロジェクトをワークスペースへ」ではないので注意
![スクリーンショット 2014-05-07 18.12.18.png](https://qiita-image-store.s3.amazonaws.com/0/42140/2c068cfc-7e76-573e-d535-981db575509a.png)

「ルート・フォルダー」に先ほど作成したプロジェクトのパスを入力して[Build Model]ボタンを押す

![スクリーンショット 2014-05-07 16.05.32.png](https://qiita-image-store.s3.amazonaws.com/0/42140/122833e2-335c-5501-1751-98062c3597e4.png)


しばらくすると対象プロジェクトの一覧が表示される。
![スクリーンショット 2014-05-07 16.05.52.png](https://qiita-image-store.s3.amazonaws.com/0/42140/6041e5e8-807b-59d0-6290-5fb9b61f0d8f.png)

ルートにチェックを入れると全部にチェックが入る
![スクリーンショット 2014-05-07 16.06.23.png](https://qiita-image-store.s3.amazonaws.com/0/42140/05c9aadd-c832-1ef0-104f-70387bd3a803.png)

[完了]を押すとインポートが開始される。
![スクリーンショット 2014-05-07 16.06.36.png](https://qiita-image-store.s3.amazonaws.com/0/42140/a3056951-ed04-8d30-ffc1-704224b221d2.png)

ここでは必要なライブラリなども自動的にダウンロードされる。
※ ネットワークの状況にもよりますが、初回は5～10分かかることもあるので気長に待ってください。

インポートが完了すると以下の様な感じでプロジェクトが追加されます。
(パッケージエクスプローラーでの表示)
![スクリーンショット 2014-05-07 16.08.38trim.png](https://qiita-image-store.s3.amazonaws.com/0/42140/8494a710-2759-03fe-6d37-c90b72aa428f.png)

デフォルトでbadlogicのロゴが表示されるサンプルコードが生成されます。

```java:MyGdxGame.java
package com.dokokano.gdxappwithseveralmsgbox;

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();
	}
}
```



# プロジェクトの実行
## Android

1. パッケージエクスプローラーの「(プロジェクト名)-Android」を右クリックして「実行」→「Androidアプリケーション」
2. 「Androidデバイスの選択」ダイアログが開くので、デバイスを選択して[OK]ボタンを押す。
3. Androidデバイス上でアプリが起動する
4. 
![Screenshot_2014-05-07-18-22-42.png](https://qiita-image-store.s3.amazonaws.com/0/42140/b44c7f0b-3215-eedf-9ad4-73fdce17d490.png)



## Desktop (Windows)

1. パッケージエクスプローラーの「(プロジェクト名)-Desktop」を右クリックして「実行」→「Javaアプリケーション」
2. 「Javaアプリケーションの選択」ダイアログが開くので「DesktopLauncher」を選択して[OK]ボタンを押す
3. Windows上でアプリが起動する

 ![スクリーンショット 2014-05-07 16.12.29.png](https://qiita-image-store.s3.amazonaws.com/0/42140/b907b501-ac91-1ade-a4e6-f53873cd7132.png)


以上です。

# 追記

　Gradleはライブラリのダウンロードや更新が自動で行われること、Workspace外にライブラリが格納されるのでリポジトリがライブラリで無駄に肥大化しないのは良いですね。
　（リポジトリにコミット辞典のライブラリが含まれていないというのはちょっと不安もありますが、これはそういうものなのかなあ）
　プラグインを入れてしまえばEclipseでも違和感なく使えます。
　またgdx-setup.jarもずいぶんシンプルでわかりやすくなったし、自動生成されるコードも洗練されてきました。


　ちなみにlibGDX、日本ではあまり有名ではないですが2Dゲーム用ライブラリとしては世界的にはCocos2Dを超えるシェアがあるんですよ。
　[Androidアプリでよく使われているライブラリを調べる方法](http://qiita.com/fslasht/items/b375ad62efd64c11d032) の記事で載せましたが、AppBrain statsによると

![スクリーンショット 2014-05-01 12.30.05trim2.png](https://qiita-image-store.s3.amazonaws.com/0/42140/7c23146c-2fab-f73a-a63e-c6b246f61350.png)

　アプリ数、インストール合計数ともにlibGDXのほうが若干多いです。

　先月1.0になったところですが、4年間の実績ありますので海外ではドキュメントやフォーラムの活動が活発です。StackOverflowでもかなりの[libGDX関連記事](http://stackoverflow.com/search?q=libGDX)がありいざというときも安心です。
　これを機会に日本でもユーザー増えるといいなあ。