凡ミスでした。
スプライトの仮想VRAMをAndroidBitmapに設定するのは、ちゃんとAndroid用のパレットテーブル(16bitカラー)を咬ませていたのに対し、BGの仮想VRAMを設定するときに誤ってWindows用のパレットテーブル(32bitカラー)を咬ませていたのが原因。
という訳で、修正して実行したところ、問題解決。
AndroidでもちゃんとWindowsと全く同じ画面が表示されました。
ちなみに、現時点でのVG-Engine+InvaderBlockのソースコードのファイルは次のような構成になっています。
それぞれのファイルの意味は、
- Android.mk: ndk-buildをするためのmakefile
- com_suzukiplan_IBLOCK_IBLOCK.h: javahで生成したJNIヘッダ
- game.c: InvaderBlockの処理
- NUL: ndk-buildをした時に生成されるゴミファイル
- vge.h: VG-EngineのAPIを使うためのヘッダファイル
- vge_a.c: VG-Engine本体(Android版)
- vge_w.c: VG-Engine本体(Windows版)※Android版ではビルドしない
- vgeapi.c: VG-EngineのAPI
- vgeint.h: VG-Engine本体とAPI間で共用する内部データ定義等のヘッダファイル
今回のVG-EngineのAndroid対応で作っているソースはvge_a.cのみ。
その他のソースは、Windows版から1行たりと修正していません。
要するに、Windows版とAndroid版の動きは全く同じです。
なので、今後、InvaderBlockV2のスクリーンショット等を掲載するときは、Windows版のものを載せます。
(補足)
先ほどの記事では、(テンションが高かったため)携帯でタブレットの写真撮影をし、メールでPCに飛ばし、それを載せていたのですが、私の携帯は従量課金制なので勿体無い。ついでに、携帯のSDカードは、バッテリーを外さないと取れないという、素晴らしく使い難い設計(iida製のPLYという機種)なので、SDカードに保存したデータをPCへ持ってくるのも面倒くさい。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。