AndEngine 何もしないアプリをつくる
SDKはいれとけ
AndEngineをいじっています。よくわかっていないので、勉強しながらブログ書いてます。
今回はAndEngineを用いた空っぽのプロジェクトをつくります。
SDKのインストールなど終え、Androidアプリをビルドできる環境が整っている事が前提条件です。
準備できたら次行きます。
とりあえずHello worldまで
AndEngineの取得
まず、AndEngineが必要です。
- nicolasgramlich/AndEngine – GitHub
- https://github.com/nicolasgramlich/AndEngine
ダウンロードして任意のフォルダに保存します(僕はeclipseのworkspaceディレクトリの中にlibディレクトリ作ってその中に入れてます)。 この前のエントリで、zipファイルでダウンロードする説明をしましたが、git cloneで取得した方が利点が多いです。ぜひgitで。
eclipseへのインポート
取得したAndEngineのプロジェクトファイルをelipseへインポートします。 メニューバー[ファイル]→[インポート]
OSやeclipseのバージョン等によって少し画面は違うかもしれません。画面のとおり、インポートする種別はAndroid Codeを選んで下さい。[次へ]を押下します。
[Browse]ボタンから、先程ダウンロードしておいたAndEngineのディレクトリを探して設定します。あとは[完了]押して終わり。
プロジェクト・エクスプローラにAndEngineプロジェクトが出現していれば成功です。
プロジェクトの作成
新規プロジェクトを作成します。 メニューバー[ファイル]→[新規]→[プロジェクト]
『Android Application Project』を選択して[次へ]。
アプリの名前やパッケージ名を決めて下さい。ここではBlankAppなどとしてます。
[次へ]。
手順を省くため、『Create custom launcher icon』のチェックは外してます。他は特に変更せずに[次へ]。
特に何もせず(『Blank Activity』のまま)[次へ]で進みます。
Activityとレイアウトファイルの命名です。サンプルプログラムなのでこのままいきます。 [完了]を押下するとプロジェクトが生成されます。この時点でビルドして実行できるプロジェクトになっています。試しに実行すると以下です。
Hello?
AndEngineのリンクから実行まで
AndEngineとリンクする
作成した新規プロジェクト『BlankApp』のプロパティを開きます。 メニュー[ファイル]→[プロパティ]、もしくはプロジェクト・エクスプローラのBlankAppを右クリックして表示されるコンテキストメニューからの[プロパティ]でも同じ。 左のツリーから『Android』を選択。
右下のライブラリ設定で『Add』押下でAndEngineを選択して[OK]。
これでAndEngineライブラリを利用できるようになりました。
最初のコーディング
早速、MainActivity.javaを編集していきます。 先に見せるとできあがりはこれ。ただ灰色の画面になる。
package com.example.Blank;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.util.FPSLogger;
import org.andengine.ui.activity.SimpleBaseGameActivity;
public class MainActivity extends SimpleBaseGameActivity {
private static final int CAMERA_WIDTH = 480;
private static final int CAMERA_HEIGHT = 720;
@Override
public EngineOptions onCreateEngineOptions() {
final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED,
new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
}
@Override
protected void onCreateResources() {
}
@Override
protected Scene onCreateScene() {
final Scene scene = new Scene();
scene.setBackground(new Background(0.75f, 0.75f, 0.75f));
return scene;
}
}
SimpleBaseGameActivity
- Line:13,14描画領域の定義です。480×720。固定値に疑問を持つかもしれませんがとりあえずこのままで。
- Line:12 まず、MainActivityをSimpleBaseGameActivityのサブクラスにします。これにより、最低限以下3つのメソッドを実装する必要があります。
onCreateEngineOptions()
AndEngineへの設定を行います。
- Line:18Cameraクラスで描画領域の宣言をします。起点座標と幅、高さ。
- Line:19
- EngineOptions()
- true = フルスクリーンにする。
- PORTRAIT_FIXED = 縦画面
- RatioResolutionPolicy = 画面の拡大/縮小のオプションで、与えた幅と高さの比率を守って拡大/縮小するようにしています。
- 領域サイズを設定したカメラオブジェクト
onCreateResources()
スプライトやサウンドデータの読み込みを行う場所ですが今回は不要なので何もしません。 空実装でオケー。
onCreateScene()
描画の実施です。
- Line:31背景色を灰色に設定しています。RGBですが値の有効範囲は0〜1のfloatです。 エミュレータの解像度が480×800なので、オプションで定義した領域より広く、少しスキマが開いているのがわかります。
おわり
とりあえず以上でAndEngineを用いた空っぽのプロジェクトができました。
疲れたね(キャプチャして貼り付けるのが)。