Notice: get_currentuserinfo の使用はバージョン 4.5.0 から非推奨になっています ! 代わりに wp_get_current_user() を使ってください。 in /var/www/html/blog/wp-includes/functions.php on line 3831 Call Stack: 0.0001 228200 1. {main}() /var/www/html/blog/index.php:0 0.0001 228640 2. require('/var/www/html/blog/wp-blog-header.php') /var/www/html/blog/index.php:17 0.1123 5935504 3. require_once('/var/www/html/blog/wp-includes/template-loader.php') /var/www/html/blog/wp-blog-header.php:19 0.1134 5943576 4. include('/var/www/html/blog/wp-content/themes/zbench/single.php') /var/www/html/blog/wp-includes/template-loader.php:74 0.1134 5943608 5. get_header() /var/www/html/blog/wp-content/themes/zbench/single.php:1 0.1134 5944192 6. locate_template() /var/www/html/blog/wp-includes/general-template.php:45 0.1134 5944432 7. load_template() /var/www/html/blog/wp-includes/template.php:647 0.1135 5958280 8. require_once('/var/www/html/blog/wp-content/themes/zbench/header.php') /var/www/html/blog/wp-includes/template.php:688 0.1148 5974488 9. wp_head() /var/www/html/blog/wp-content/themes/zbench/header.php:8 0.1148 5974536 10. do_action() /var/www/html/blog/wp-includes/general-template.php:2589 0.1148 5975208 11. WP_Hook->do_action() /var/www/html/blog/wp-includes/plugin.php:453 0.1148 5975304 12. WP_Hook->apply_filters() /var/www/html/blog/wp-includes/class-wp-hook.php:323 0.1280 6195232 13. call_user_func_array:{/var/www/html/blog/wp-includes/class-wp-hook.php:298}() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1280 6195840 14. add_google_analytics() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1282 6196624 15. ga_current_user_is() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1116 0.1282 6196656 16. get_currentuserinfo() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1289 0.1282 6196880 17. _deprecated_function() /var/www/html/blog/wp-includes/pluggable-deprecated.php:49 0.1283 6197368 18. trigger_error() /var/www/html/blog/wp-includes/functions.php:3831

AndEngine 何もしないアプリをつくる

SDKはいれとけ

 AndEngineをいじっています。よくわかっていないので、勉強しながらブログ書いてます。

 今回はAndEngineを用いた空っぽのプロジェクトをつくります。
 SDKのインストールなど終え、Androidアプリをビルドできる環境が整っている事が前提条件です。
 SDKインストールの話は以前に書いたのですが、もうだいぶ昔(2009)の話で内容も古いので、ビルド環境整ってない場合は他をあたってください。

 準備できたら次行きます。

とりあえずHello worldまで

AndEngineの取得

 まず、AndEngineが必要です。


 ダウンロードして任意のフォルダに保存します(僕はeclipseのworkspaceディレクトリの中にlibディレクトリ作ってその中に入れてます)。
 この前のエントリで、zipファイルでダウンロードする説明をしましたが、git cloneで取得した方が利点が多いです。ぜひgitで。

eclipseへのインポート

 取得したAndEngineのプロジェクトファイルをelipseへインポートします。
 メニューバー[ファイル]→[インポート]

1_import

 OSやeclipseのバージョン等によって少し画面は違うかもしれません。画面のとおり、インポートする種別はAndroid Codeを選んで下さい。[次へ]を押下します。

2_import2

 [Browse]ボタンから、先程ダウンロードしておいたAndEngineのディレクトリを探して設定します。あとは[完了]押して終わり。
 プロジェクト・エクスプローラにAndEngineプロジェクトが出現していれば成功です。

3_AndEngineAdded

プロジェクトの作成

 新規プロジェクトを作成します。
 メニューバー[ファイル]→[新規]→[プロジェクト]

4_NewProject

『Android Application Project』を選択して[次へ]。

5_NewAndroidApplication

 アプリの名前やパッケージ名を決めて下さい。ここではBlankAppなどとしてます。
 [次へ]。

6_NewAndroidApplication

 手順を省くため、『Create custom launcher icon』のチェックは外してます。他は特に変更せずに[次へ]。

7_NewAndroidApplication

 特に何もせず(『Blank Activity』のまま)[次へ]で進みます。

8_NewAndroidApplication

 Activityとレイアウトファイルの命名です。サンプルプログラムなのでこのままいきます。
 [完了]を押下するとプロジェクトが生成されます。この時点でビルドして実行できるプロジェクトになっています。試しに実行すると以下です。

Hello?

9_HelloWorld

AndEngineのリンクから実行まで

AndEngineとリンクする

 作成した新規プロジェクト『BlankApp』のプロパティを開きます。
 メニュー[ファイル]→[プロパティ]、もしくはプロジェクト・エクスプローラのBlankAppを右クリックして表示されるコンテキストメニューからの[プロパティ]でも同じ。
 左のツリーから『Android』を選択。

10_prop

 右下のライブラリ設定で『Add』押下でAndEngineを選択して[OK]。

11_AddAndEngine

 これでAndEngineライブラリを利用できるようになりました。

最初のコーディング

 早速、MainActivity.javaを編集していきます。
 先に見せるとできあがりはこれ。ただ灰色の画面になる。

12_BlankApp

 スタイル定義がうまくなくて、ソースの貼り付けが汚いですがごめんなさい。後で直します。

[gist id=5904733]

SimpleBaseGameActivity

  • Line:13,14
    描画領域の定義です。480×720。固定値に疑問を持つかもしれませんがとりあえずこのままで。
  • Line:12
     まず、MainActivityをSimpleBaseGameActivityのサブクラスにします。これにより、最低限以下3つのメソッドを実装する必要があります。

onCreateEngineOptions()

 AndEngineへの設定を行います。

  • Line:18
    Cameraクラスで描画領域の宣言をします。起点座標と幅、高さ。
  • Line:19
    • EngineOptions()
    1. true = フルスクリーンにする。
    2. PORTRAIT_FIXED = 縦画面
    3. RatioResolutionPolicy = 画面の拡大/縮小のオプションで、与えた幅と高さの比率を守って拡大/縮小するようにしています。
    4. 領域サイズを設定したカメラオブジェクト

onCreateResources()

 スプライトやサウンドデータの読み込みを行う場所ですが今回は不要なので何もしません。
 空実装でオケー。

onCreateScene()

 描画の実施です。

  • Line:31
    背景色を灰色に設定しています。RGBですが値の有効範囲は0〜1のfloatです。
     エミュレータの解像度が480×800なので、オプションで定義した領域より広く、少しスキマが開いているのがわかります。

おわり

 とりあえず以上でAndEngineを用いた空っぽのプロジェクトができました。

 疲れたね(キャプチャして貼り付けるのが)。

Related Posts

Comments are closed.