ゲーム本編ではない部分の作成に取り掛かった。
まずは、ミス時のアニメーション処理。
本物のゲームウォッチと違って、液晶じゃないから、重ねて表示してもよかったんだけど、せっかくここまでこだわってきたので、狭苦しいところに2パターンだけ、新しいグラフィックを追加して、アニメーションさせた。
テストプレイしてもらった友人は、気に入ってくれた♪
次は、ゲームセレクト画面の作成。
処理するボタンは5つ。
- GAME Aボタン
- GAME Bボタン
- MUSICボタン
- TIMEボタン
- MANUALボタン
ゲーム本体で作成したタッチ処理を使ってもよかったが、こっちは同時押しをさせたくないので、従来通りのシングルタッチのみ判定する処理を、パラシュートのプログラムから移植。あとはタッチしたXY座標の範囲をif文で判定して、処理を行った。
そして、今回はキーボード操作には対応させなかったので、マウスでクリックしてもらう。
;タッチパネル操作の判定 mtlist touchid num=stat if num>0 & touched=0 { ;一本以上指がタッチしていて、かつタッチした直後なら id = touchid(0) ;一本目のタッチは0番目 mtinfo touch,id if touch(0)=1 { ;タッチがオンならば ;タッチされた座標を変数に代入、タッチしたフラグを付ける tx=touch(1):ty=touch(2):touched=1 ;ボタンを押したか座標で判定 if tx>=1107 and tx<=1210 { if ty>=73 and ty<=128 { ;GAME A gamemode=GAMEA } if ty>=146 and ty<=199 { ;GAME B gamemode=GAMEB } if ty>=219 and ty<=274 { ;MUSIC mvol-- if mvol<0 : mvol=4 } if ty>=293 and ty<=384 { ;TIME pause_flg=pause_flg^1 } } ;マニュアルボタンを押したかを判定 if ty>=245 and ty<=298 { if tx>=102 & tx<=177 { manual_flg=1 pagecnt=1 } } } } else : if num=0 : touched=0 ;タッチ情報が無くなったら、フラグを戻す
GAME A、Bボタンを押せば即ゲームスタート。
MUSICボタンは、押すたびに音量を4段階+ミュートできるようにした。ミュート時は、液晶の左上に"MUTE"と表示する。
それ以外の音量は、チェーンソーの温度計の目盛りを利用した。
TIMEボタンは、各ゲームのハイスコア表示と、時刻表示を切り替えるようにした。ここもゲームウォッチ再現ということで、12時間表記にしてみた。
MANUALボタンは、取扱説明書風に、青単色で画像を数枚作成し、紙芝居形式でスライドするように画像を表示させることにした。
READMEに書けば済むかもしれないけど、Androidアプリにするので、アプリ内で完結させたかった。
続く。