そこそこいけそう
Boost.MSMによる状態遷移の実装だがそこそこいける感じがしてきた。メニュー画面→ゲーム画面→メニュー画面という画面遷移を実装してみたがいまのところきちんと動いている。
ゲーム開始ボタンを押すと、ゲーム画面に遷移する。Backボタンを押すとメニューに戻る。
↓
Boost.MSMを利用することのメリット
状態管理のためのフラグ管理コードや、状態に応じた処理分岐のコードを書かなくていいところかな。状態マシンや遷移テーブルをあらかじめ定義する必要はあるが労力はかなり低減されると思う。たとえば描画コードはメニューとゲーム画面では描画内容が異なる。普通だと描画コード内でメニューなのかゲーム画面なのか状態変数を見て処理分岐するが、そういうコードを書かなくて済むのだ。状態マシンに描画イベントを送れば、その時の状態に応じた適切なコードを呼び出すまでの処理をライブラリに任せることができる。