ターン制バトル (メモ)

データベース

プレイヤーデータ

敵個体データ

敵グループ

エフェクトデータ

技データ

など


フィールド変数

行動順番リスト

現在の順番


戦闘開始関数

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;
}
// メッセージを表示して、バトル終了
// 略

■プレイヤークラス

ベースクラスを継承

攻撃対象

攻撃メソッドを拡張

事前にメニュー画面の操作をした後に、

ベースクラスの攻撃メソッドを呼び出す。

■敵

ベースクラスを継承

■ベースクラス

・ステータス

・攻撃メソッド

ダメージポイントを計算して返す

「○○の攻撃!」

・ダメージを受けるメソッド

引数は受けるダメージポイント

「○○は○○のダメージを受けた!」

・生きているかどうかを確認するメソッド

「○○は倒された!」

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

%d人のブロガーが「いいね」をつけました。