2014年9月1日月曜日

libGDXで回転するジェット機

今回のサンプルは、「LibGDX Tutorial 3: Basic graphics」、
ジェット機が回転するアニメーションをする。

1.gdx-setupで雛形を作成


ターミナルを開き、gdx-setup.jarがあるフォルダに移動する。
$ cd ~/libGDXProject

gdx-setupを起動する。
$ java -jar gdx-setup.jar

liggdx Project Generator が起動される


必要な情報を入力。()内は説明。
Name: BasicGraphics(プロジェクト名)
Package: name.taoka.ugeee.basicgraphics(パッケージ名)
Game class: MyGdxGame(ゲームクラスの名前)
Destination: /home/taoka/libGDXProject/BasicGraphics(プロジェクトを生成するフォルダ名)
Android SDK: /usr/local/android-studio/sdk(Android SDKのパス。自動でセットされているハズ)

Sub Projects: Desctop と Android を選択。
※Iosは持ってない、HtmlはGWTのプラグインがなくて動かなかったので外した。

Extentions: Box2dが最初からチェックされていたのでそのままにした。

全部入力したら、「Generate」ボタンをクリック。
何やらエラーが出た。
You have a more recent version of android build tools than the recommended.
Do you wat to use this version?


前回」も出たので、そのまま「はい」をクリック。

雛形が生成される。
ゴニョゴニョといっぱいメッセージが出てくる。
「Done!」と表示されれば成功。


もう用がないので、「liggdx Project Generator」は終了させる。

2.Eclipseに取り込む


Eclipseを起動し、
File > Import... > Gradle Project を選択し「Next >」をクリック。


Root folder に、「/home/taoka/libGDXProject/BasicGraphics」
(liggdx Project Generator で指定した Destination)を入力し、
「Build model」をクリック。


しばらく待つと以下のようにプロジェクトが表示される。


プロジェクト(BasicGraphics)をチェックし、「Finish」をクリック。


しばらく待つ。
Package Explorerにプロジェクトが追加追加されている。



3.動作確認


動かしてみる。
プロジェクト「BasickGraphics-desktop」右クリックし、
Run AS > Java Application を選択。


Select Java Application というダイアログが出て何やら聞いてくるので、
「DesktopLauncher」を選択し「OK」をクリック。


動いた!(それにしても度きつい赤だなー)


Androidで動かしてみる。

プロジェクト「BasickGraphics-android」右クリックし、
Run AS > Android Application を選択。


インストールするデバイスを選び、「OK」をクリック。


しばらくするとAndroid端末で以下のような画面がでるハズ。


4.ジェット機の画像を表示


まず、ジェット機の画像ををダウンロードし、Eclipseのプロジェクトにコピー。
これは、「本家」からダウンロードしてください。


android/desktopともassetsの下にコピー。


Game class の修正。
BasicsGraphics-core の MyGdxGame.java を修正。


実行してみる。

引用
コー​​ドについては、実際には前のチュートリアルでのHello Worldの例と比較して新しいことありません。唯一の新しい概念は、テクスチャとスプライトです。テクスチャは、基礎となるOpenGLのテクスチャを表す。テクスチャ(および他の類似のクラス)で心に留めておくべき重要な点は、彼らが使い捨てインターフェイスを実装している。これは、あなたがそれを使い終わったら、disposeメソッドを呼び出す必要があり、そうしないとメモリリークが発生することを意味します!

5.Pixmapを使用して動的に画像を表示


Game class の修正。
BasicsGraphics-core の MyGdxGame.java を修正。


実行してみる。

6.TextureAtlas


いろんな角度からみたジェット機の画像を用意。
本家に見当たらなかったので、
本家の画像より切り抜いたものを置いておく。
jet-images.zip (20画像)


ジェット機の画像を適当なフォルダに解凍。
(ここでは、「~/libGDXProject/BasicGraphics/images」に解凍した)

libGDXのあるフォルダに移動し、以下を実行
$ java -cp gdx.jar:extensions/gdx-tools/gdx-tools.jar com.badlogic.gdx.tools.texturepacker.TexturePacker ~/libGDXProject/BasicGraphics/images/ ~/libGDXProject/BasicGraphics/images/ spritesheet
※Windowsで実行する場合は、gdx.jarとextensions の間の赤い「:」(コロン)は「;」(セミコロン)にする。
※Setup App だけをダウンロードして Automatically でセットアップした場合は、別途ここよりzipをダウンロードして解凍しておく。

TexturePackerの説明
機能: 複数の画像を1つのファイルにパッケージする
第1パラメータ: 画像ファイルのあるディレクトリ
第2パラメータ: 生成先のディレクトリ
第3パラメータ: パッケージファイル名


すると、「spritesheet.atlas」と「spritesheet.png」というファイルが作成される。

プロジェクトにコピー
「spritesheet.atlas」と「spritesheet.png」をassetsフォルダにコピーする。


BasicsGraphics-core の MyGdxGame.java を修正。


実行してみる。


以上、終わり。

0 件のコメント:

コメントを投稿