ゲームを作る時にお勧めしたいクラス - ステートマシン -
なんでステートマシンを勧めるの?
ゲームにはいたる所に状態、つまりステートがあります。大きいところだとタイトルからゲーム本編、エンディングといった状態があります。
graph TD タイトル <--> ゲーム本編 ゲーム本編 --> ゲームオーバー ゲーム本編 --> エンディング ゲームオーバー --> タイトル エンディング --> タイトル
キャラクターにも、移動や待機、攻撃、ダメージ、死亡などの状態があります。
graph TD 移動 <--> 待機 移動 <--> 攻撃 待機 <--> 攻撃 移動 <--> ダメージ 待機 <--> ダメージ 移動 --> 死亡 待機 --> 死亡 攻撃 --> 死亡
このようにゲームにはステート管理する事がとても多いのですが、この状態管理をswitch文で処理している事を学生作品でよく見かけたので、ステートマシンを紹介します。
switchによる状態管理の例
switch (state)
{
case StateA:
stateA();
break;
case StateB:
stateB();
break;
}