Boost.MSMを使って状態遷移コードを簡単に実装できないかなということで試してみている。
実際のアプリケーションに組み込むと、なかなかサンプルコードどおりのように簡単にはいかない。なぜならサンプルコードというのは説明をわかりやすくすることを最優先に作られていて、簡略化された世界を描いているからだ。現実はそう簡単ではないのだ。APIとのグルーコードやUIのイベント処理や例外処理なんかはアプリを実装する段階になって初めて直面する。私が作ろうとしているシューティングゲームのような比較的簡単なものでもそうだ。ライブラリ・プログラマが描く美しい夢のような世界を現実に引き戻すような作業が必要なのだ。
まあいま実装しながら考えているのは
- 状態管理クラスを単独で持たせたほうがよいか
- 状態管理クラスが主体的にコントロールすべきか
だ。