画面上のソフトパッドをタッチしてマップをスクロール表示するテスト用のAndroidアプリです。想定画面はVGA以上、Android2.1以上を対象にビルドしてあります。

マップは、40*40ピクセルのチップ(ビットマップ)を11*11チップ並べる形で構成し、タッチキーで上下左右に「移動」できるようにしてみました。RPGやアドベンチャーなど2Dフィールド(俯瞰型)ゲームのマップ画面をイメージした構成ですね。

ソフトパッドは、マップの右、または下に配置される灰色の正方形です。この正方形をタッチすると、タッチした位置に応じて上下左右への「移動」を開始します。移動中は、1ピクセル単位で「チップの描画開始位置」をずらす形でスクロール表示を行います。

アプリは、Activityにマップを描くSurfaceViewとソフトパッドを描くViewを配置する形で構成し、ActivityのonCreate()で端末の向きを取得して縦/横方向に配置してみました。その後、Runnableインターフェースを実装するSurfaceView内にメインループを駆動するスレッドを作成し、その中でタッチパッドの状態取得とスクロール処理を行っています。

Android実機での描画性能を計測するために、毎フレームの処理時間を取得し(10フレームの平均を)表示するようにしてみました。メインループの最後ではフレームの処理時間が最低10msとなるようウエイトを入れているのですが、手元のIdeapad A1(Android2.3)では20ms程度になります。

ソースをダウンロードしてビルドする場合は、Androidプロジェクトを作成しソースを追加したら、リソースにマップチップ画像としてdrawable-nodpi/chip_40.pngを作成してください。

アプリ実行イメージ

インストール

ソース

ソースファイルは、UTF-8で記述されています。


創作プログラミングの街