Android Market公開 シャッフルパズル(英名ShufflePuzzle)

追加したい機能が沢山あってまだ未完成なのですが、公開プロセスの練習兼ねて、日本語タイトル「シャッフルパズル」で ひとまずAndroid Market に公開しました。(当然無料)
Marketで「シャッフルパズル」か「ShufflePuzzle」で検索すると出てきます。



現在の機能は、
・描画方法がView、SurfaceView、GLSurfaceViewの3種類の中から選べる(これらの比較が最初の目的だったので)
・level 1=15(4×4)パズル、level 2=24(5×5)パズルを選べる
・GiveUpメニューで現在画面からの解答プレビューを、Shuffleメニューで現在画面からの再シャッフルを行う
・解答プレビュー中は他のメニューボタンを押してもCompleteになるまで移行しません。(端末リソース諸々のエラー防止のため)

本当は最初から追加しておきたかった機能は、
・素材画像を/sdcard/DCIM/Camera(=Android端末で撮影した写真が自動で格納される所。ここに他カメラで撮影した写真のコピーも可能)等から選択できること。
こっちは実装前に公開しちゃったので、出産後時間を見つけてバージョンアップかな。そろそろこちらの手を休めて、出産に集中しようかと思っています。


<考察まとめ>…以前の記事の繰り返しを含みますが
アプリを実行しても分かりますが、特にGiveUpのプレビュー時のスライドの動作が、
・Viewの場合、都度invalidate()した中で動かすためスライドの移動スピードを確保しようとすると少々カクカク見える
・SurfaceViewの場合、描画Threadで動作しているためViewより滑らかで、必要メモリもGLSurfaceViewに比べ少なく軽やか。今回のゲームには一番適しています。
・GLSurfaceViewは描画用の別Threadで動いているのですが、メモリを喰うため、メモリが十分な端末だと滑らかですが、開発端末だとメモリ不足でGCが頻繁に走り、その都度スライドの移動が一瞬止まることが良くあります。GCがなく動いている間は、SurfaceView同様滑らかです。

ちなみにXperiaの場合、上記プラス、SnapdragonチップセットGPUのおかげで、OpenGLモードでのハードウェアアクセラレーションの効果もありそうです。

ShufflePuzzle v1.0(初版)ソースコードをアップしておきます。