ボスの状態遷移が複雑になりすぎってなかなか新しいものを作れなかったのですが、ステートパターンなる書き方を実践して見た結果、とてもわかり易いコードになりました。

  
・ステートパターンとは

 状態遷移を簡単に実装するデザインパターンです。switch文の各caseを各クラスに分割すると考えていただければよいかと思います。
  
 こちらのサイトを参考にしました。 
 東京工業大学デジタル創作同好会


 いままではボスクラスに以下のように状態遷移を書いていました。

 switchi(var){

case 1: 攻撃パターン1
case 2: 攻撃パターン2
case 3: 攻撃パターン3
}



 しかし、これだと各攻撃パターンを制御する変数をボスクラスに持たせないといけません。その結果生じる問題点が以下の項目です。
  1. 変数が増えすぎてわかりにくい
  2. 想定外に値が変わってしまう


しかし、ステートパターンを使うと以下のようにクラス・シートを分割、することができます。

  • class 攻撃パターン1を含むクラス{}
  • class 攻撃パターン2を含むクラス{}
  • class 攻撃パターン3を含むクラス{}

こうすることで識別子が同じ変数を使えるようになり、変数の管理も簡単になります。その結果、攻撃パターン作成に専念できるようになりました。



・ステートパターンを実装した意義
 開発の簡略化です。ゲームが複雑になるに連れてコードも複雑になっていきます。するとシステムを管理することに主眼が言ってしまい、肝心なゲーム性に割く時間がなくなってしまいます。
 大別するとゲームはシステムとコンテンツに分けられます。ゲームをストレスなく進めるためにはシステムの洗練さが、没入するためにはコンテンツの充実が必要です。ステートパターンによって開発をシステム作成とコンテンツ作成を分割することができます。両者の結合性が高すぎるとコンテンツをつくることでシステムに影響を与えてしまうかもしれません。それを防ぐためにもステートパターンはよいかと思います。