データベース
プレイヤーデータ
敵個体データ
敵グループ
エフェクトデータ
技データ
など
フィールド変数
行動順番リスト
現在の順番
戦闘開始関数
void BattleStart(int id);
id 敵グループ識別
初期化
行動順番を決定し、行動順番リストに格納する。
処理
行動順番リストから行動する対象を決定。
もしプレイヤーであれば、メニューを選択可能にし、選択の決定を待つ。
もし敵であれば、与えるダメージを計算し、プレイヤーのステータスを変更する。
プログラム例
コルーチンを使う
■バトル管理クラス
// プレイヤーと敵のデータ
List<Base> el = new List<Base>();
// データの格納
el.Add(data.pl);
el.Add(data.en);
el.Add(data.en2);
// プレイヤーの要素番号
byte pl_num;
// すばやさ順にソート
pl_num = Sort(el);
for(;;)
{
// お互いの攻撃
for(byte i = 0; i < el.Count(); i++)
{
if(i == pl_num)
{
el[el[i].target].Damage(el[i].Attack());
}
else el[pl_num].Damage(el[i].Attack());
}
// 倒されたかチェック
// 略
yield return null;
}
// メッセージを表示して、バトル終了
// 略
■プレイヤークラス
ベースクラスを継承
攻撃対象
攻撃メソッドを拡張
事前にメニュー画面の操作をした後に、
ベースクラスの攻撃メソッドを呼び出す。
■敵
ベースクラスを継承
■ベースクラス
・ステータス
・攻撃メソッド
ダメージポイントを計算して返す
「○○の攻撃!」
・ダメージを受けるメソッド
引数は受けるダメージポイント
「○○は○○のダメージを受けた!」
・生きているかどうかを確認するメソッド
「○○は倒された!」