サブシーンについて2
昨日の続きです。とりあえずサブシーンの実装で思いついたのは以下の方法です。
- Stateパターン
- Observerパターン
- 力技で実装
プログラマの先輩にも聞いたのですが、一番有力なのがStateパターンでした。各キャラクターにサブシーンの時の状態クラスを作っておけばいいのではないかという考えです。そうしておけば、コントローラーの入力に対しても指定したボタン入力しか受け付けませんし、クラス単位でのデバッグになるのでバグも見つけやすいと。弱点はコードを多く書かなくてはいけないところですね。
次のObserverパターンですが、予めサブシーンを管理するクラスを作っておき、それに各キャラクターをリスナとして登録します。そしてサブシーンが切り替わった時に通知し、各キャラクターの処理をそのサブシーンに切り替えてしまうという作戦です。この作戦の弱点はリスナを継承しないといけない点でしょうか。他にはコントローラーの入力処理が複雑になりがちな点でしょうか。
力技で実装は、もうif文とかを使用して保守性とか気にせずに作る方法ですね。一時凌ぎとかそういうときに使います。弱点はありすぎて語らなくてもいいぐらいです。
今回は短いですが以上です。次回予告としてはサンプルを提示する形になるんですかね?あまり書ける自信がないのですが、書けるのでしたら書いておきます。(そのまま流用して自分で使う可能性高いですからね)
最後にサブシーンのサンプルをYoutubeから拝借。動画はえーでるわいすさん作の『ETHER VAPOR』です。会話シーンの時がサブシーンと思ってください。それにしてもえーでるわいすさんのエフェクトは凄いですね。