ゲームの大枠がほぼ出来上がったので、テストプレイをして難易度や、各ステージの設定を変更する作業を行った。
大体長くて1ステージ5分弱。それが全11ステージ+ボーナスステージなので、そこそこのプレイ時間を強いられる。
そこで、休憩ができないことに気づく。ポーズ機能を作ろう。
で、このブログを見ている方だけのお知らせです。スタートボタン(ボタン10)かTABキーで、ポーズできます。
って、誰が見てるのかw
さて本題。いざ実装を始めると、単純ではなかった。
ポーズするボタンを押したら、ゲームのメインループの中でフラグを設定して、自機の移動やショットの処理を実行しないようにすればよいかと思ったけど、ここまで楽をしたことが面倒なことになった…
それは、細胞スプライトの自動移動と、アニメーション。
どっちも一時停止する方法が分からない…*1
また、BGMも一時停止できない。ここは割り切って、ポーズしたら停止して、再開するときに再生し直すことにした。
で、問題のスプライト関連。ポーズボタンを押したら、サブルーチンに飛ばして、もう一度ポーズボタンを押すまで、while~wendの無限ループにすることで解決したw
これで休憩しながら、テストプレイすることができた。
*pause ;ポーズ処理 mmstop pauseflg=0 mmplay SE_PAUSE while pauseflg=0 JStick key,,,1 if (key&1024) or (key&1048576) : pauseflg=1 wend if soundflg=1 : mmplay bgmno mmplay SE_PAUSE return
*1:のちに、es_drawで処理保留フラグを設定すれば、停止できることは分かったので作り直した