Androidアプリ開発したい!

IT屋がGalaxySを手に入れてからAndroidに興味が湧き、いろいろと開発したりしてます。 GalaxyNexusがメイン機となり、ようやく普及し始めたAndroid4.0への関心が高いです。 仕事では、iPhone向けとかのソシャゲ作ってます。

AndEngineを使ってみる

はじめに

Android標準フレームワークでゲーム作ろうとすると独自にゲーム用のフレームワークみたいなのを作ってやらないと、パフォーマンスとか汎用性が出せす詰みます。
カジュアルゲームとかサクッと作れるAndEngineに手を出すことにしました。

参考書籍

AndEngineでつくるAndroid 2Dゲーム(著:立花 翔)

AndEngineとは

- LGPLライセンス

書籍の目次

     1. 開発環境の準備
     2. ゲーム共通で仕様できる部分の実装
     3. 投げ系ゲーム
     4. 横スクロールゲーム
     5. 加速度センサーを利用したゲーム
     6. 広告とランキング機能の実装について解説
付録. 逆引きリファレンス

サンプルダウンロード


AndEngineのダウンロードとインポート


スクリーンショット 2012-12-23 23.02.25.png

スクリーンショット 2012-12-23 23.02.31.png

スクリーンショット 2012-12-23 23.02.46.png

Androidプロジェクト作成

基本的には普通に作成すればOK
スクリーンショット 2012-12-23 23.05.01.png

スクリーンショット 2012-12-23 23.05.13.png

スクリーンショット 2012-12-23 23.05.26.png

スクリーンショット 2012-12-23 23.05.37.png

スクリーンショット 2012-12-23 23.06.18.png

ライブラリとして読み込む設定

スクリーンショット 2012-12-23 23.07.07.png

AndroidManifest.xmlの編集


- Android SDKのVersionを13にする
- アプリケーションのテーマを一括で「Theme.NoTitlBar」に変更
- Activityの無駄な再スタートを禁止

スクリーンショット 2012-12-23 23.20.39.png

レイアウトファイルの編集

デフォルトで配置されているTextViewを削除し、org.andengine.opengl.view.RenderSurfaceViewを表示させる。


スクリーンショット 2012-12-23 23.44.38.png

ActivityとSceneの作成

スクリーンショット 2012-12-23 23.45.55.png



MainActivityの修正

広告やWebViewの追加を考慮してSimpleLayoutGameActivityを継承する。
XML Layoutを使わずにゲームを描画する際は、SimpleBaseGameActivityを使う。

BitmapTextureAtlasクラス

画像をオブジェクトとして画面に描画する際、いったん格納する場所。
幅、高さ共に2のべき乗でなければならない。

このクラスを利用することでメモリの使用量を抑えることができる。

第4引数の読み込みオプションは、メモリを多く消費するタイプのゲームでなければ
「BILINEAR_PREMULTIPLYALPHA(アルファ値の設定が可能)」を指定する。

TextureManager クラス

TextureAtlasクラスを一括して管理するクラス。
TextureAtlasをインスタンス化した後、TextureManager上に読み込むことで描画できるようになる。

ITextureRegion クラス

TextureAtlasクラスのインスタンスに、任意の画像のパスを渡して読み込んだ状態のクラス。
TextureAtlasクラスのインスタンスには、複数の画像を読み込むことができるが、
管理が複雑になる上に、そこまで徹底的にメモリの管理を気にしなければならなくなるケースは少ない為、1つのTextureAtlasクラスに1つの画像とするのが良い。

Sprite クラス

ITextureRegionを元に、実際に視覚化されたオブジェクト。
読み込み済みのITextureRegionクラスのインスタンスの座標を指定し、インスタンス化する。
1つのTextureAtlasクラスに1つの画像の場合は、座標指定は(0,0)で問題ない。
画面左上が(0,0)

eclipseからAndroid SDKの最新バージョンをとれないとき

最新版出てるはずなので出てこない・・・ってなった時のメモ
コマンド上で、以下を実行してSDKのマネージャーを起動する。

     android --clear-cache

Macだったら多分このへんにあるはず。

     /Applications/android-sdk-macosx/tools

Android開発でERMasterを使ってSQLiteの開発

ERMaster超便利なので、Android開発でも使えないかな〜?と思ってやってみました。

流れとしては以下になります。
 1.ER図描く
 2.DDLエクスポート
 3.asset/sqlフォルダ下に配置
 4.「3.」のファイルを読み込んでListを返却するUtilを呼び出す
 5.「4.」のリストを元にSQLHelperクラスでcreate時にDDLファイルを読み込んでDBを構築

今回は、4までの内容になります。 


まずeclipseにERMasterのプラグインを導入します。(念のため)


ER図を描いてDDLをエクスポートします。
スクリーンショット 2012-07-15 17.08.05.png

ERエディタ上で右クリックー>エクスポートー>DDL

スクリーンショット 2012-07-15 17.08.25.png

エクスポート時の設定で不要なコメント行とかは極力なくすようにする。
(Android側でファイル読み込みを楽にするため)

スクリーンショット 2012-07-15 17.09.07.png


エクスポートしたSQLファイルの中身はこんな感じ。
とりあえず見たところ、コメント行と空行をなくせばいい感じかな。 

----------------- ここから -----------------


/* Drop Tables */


DROPTABLE T_SPEECH;

DROPTABLE T_MEETING_USER;

DROPTABLE T_MEETING;

DROPTABLE T_USER;





/* Create Tables */


CREATETABLE T_MEETING

(

_ID INTEGERNOTNULLPRIMARYKEY AUTOINCREMENT,

NAME TEXT,

START_TIME TEXT,

END_TIME TEXT

);



CREATETABLE T_USER

(

_ID INTEGERNOTNULLPRIMARYKEY AUTOINCREMENT,

NAME TEXT,

GOBI TEXT,

ICON INTEGER,

TEXT_COLOR INTEGER

);



CREATETABLE T_MEETING_USER

(

MEETING_ID INTEGERNOTNULL,

USER_ID INTEGERNOTNULL,

FOREIGNKEY (MEETING_ID)

REFERENCES T_MEETING (_ID),

FOREIGNKEY (USER_ID)

REFERENCES T_USER (_ID)

);



CREATETABLE T_SPEECH

(

MEETING_ID INTEGERNOTNULL,

SPEECH_NO INTEGERNOTNULL,

USER_ID INTEGERNOTNULL,

MESSAGE TEXT,

TIME TEXT,

FOREIGNKEY (MEETING_ID, USER_ID)

REFERENCES T_MEETING_USER (MEETING_ID, USER_ID)

);


----------------- ここまで -----------------



asset/sqlフォルダ下にsqlファイルを配置する。

スクリーンショット 2012-07-15 17.18.18.png



その配置したファイルを読み込んで、List<String>に変換して返却する自作Utilがこちら。




本当はこのあとSQLiteにぶっこむんだけど、
とりあず一旦ListViewで表示して確認。

f8b93f4f.jpg


ってなわけでサクッと良い感じ。
いくらSQLiteでもソース内にCreate文とかベタ書きするのは気が引けるし、
ER図以外のファイルをDB設計で弄りたくないですからね!
 
持ってる端末
・Galaxy S root化済    (2.3.6)
・Galaxy Nexus          (4.1.1)
・GALAPAGOS A01SH (4.0.4)
・ONDA Vi10              (4.0.3) 
・iPod Touch           (iOS 6.0)
記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

  • ライブドアブログ