SRPG開発プロジェクト(3) 「移動後コマンド」の実装

こんにちは、Pocachinです。
Windowsで動作するファイアーエムブレムライクなSRPG(シミュレーションロールプレイングゲーム)を作ろうというプロジェクトの3回目。今回は味方ユニットの移動後に表示する「移動後コマンド」を実装しました。

いきなり全然話は飛びますが…、

ゲーム用のライブラリを使ったことがある方はご存知のことかと思いますが、基本的にこの手のものは「1秒間にほにゃらら回、画面を再描画する無限ループみたいなものがあって、そのループの中に状況に応じた処理を記述していく」という作り方になります。アクションゲームなどならまだしも、ものごとを順番で処理するだけの今回のようなシミュレーションゲームには全くもってマッチしないやり方です。
とはいえ、やはりWindowsゲームをゼロから自作するというのは、今の私のスキルでは相当に荷が重いので、このやり方に則ってコーディングしています。

ひょっとすると、何かものすごく効率の良い方法が他にあるのかもしれないですが、このゲームでは「ゲームの今の状態を階層化された『フェーズ』で管理し、再描画の都度、フェーズに応じて押下されたキーに対応する処理を行う」という方法をとっています。ですので、新しくプレイヤーが行う処理が増えるたびにフェーズを追加することになってます。

今、実装しているフェーズは、マップ画面に限るとざっとこんな感じです。

【味方ターンのフェーズ】
・プレイヤーの回復表示
・ゲームクリア
・ゲームオーバー
・ステータス表示
・ユニット選択待ち
・ユニット選択済み。移動先設定待ち
・移動先設定済み。味方ユニット移動中
・移動後コマンド表示
・移動先設定済み。攻撃対象選択待ち
・戦闘中
・・戦闘開始
・・攻撃側の攻撃
・・・攻撃開始
・・・攻撃中
・・・攻撃終了
・・防御側の反撃
・・・(「攻撃側の攻撃」と同じ)
・・再攻撃
・・・(「攻撃側の攻撃」と同じ)
・・戦闘終了
・ターン交代(味方→敵)

【敵ターンのフェーズ】
・敵の回復表示
・移動先設定済み。敵ユニット移動中
・戦闘中
・・(味方ターンの「戦闘中」と同じ)
・ターン交代(敵→味方)

今回は、「移動後コマンド表示」を実装しました。

↓こんな感じ。

「装備」というコマンドがありますが、まだ実装していないので常にグレーアウトしています(^^;)