ゲームにおけるデータ構造・クラス設計・パターン
■ このスレッドは過去ログ倉庫に格納されています
0686名前は開発中のものです。
2007/12/27(木) 18:43:32ID:AMPsIlOq単純に書くなら、プレイヤーとかエネミークラスのメンバ変数として状態変数を持たせる。
class Enemy
{
enum STATE { STATE_INIT, STATE_LOAD, STATE_ATTACK, STATE_DOWN } m_state;
public:
void exec() {
switch (m_state) {
case STATE_INIT:
// 必要な処理。状態遷移は m_state の値を上書きすることで行う。
break;
case STATE_LOAD:
break;
}
}
};
入退場動作を記述したいとか、状態遷移が複雑で手に負えなくなったら、
XML なり CSV なりで書いた状態遷移表から C++ のコードを自動生成する
トランスレータ書くとか、階層化状態をサポートするライブラリ (有名どころ
だと Boost Statechart とか) を入手して使う。
■ このスレッドは過去ログ倉庫に格納されています