C#
1public abstract class Status : MonoBehaviour 2{ 3 public string Name { get; set; } //名前 4 public int Level { get; set; } //レベル 5 public int HP { get; set; } //体力 6 public int Max_HP { get; set; } //体力最大値 7 public int MP { get; set; } //マジックポイント 8 public int Max_MP { get; set; } //マジックポイント最大値 9 public int ATTACK { get; set; } //攻撃力 10 public int DEFENCE { get; set; } //防御力 11 public int SPIRIT { get; set; } //精神力 12 public int SPEED { get; set; } //素早さ 13 public bool Living { get; set; } //生存フラグ 14 public string Image { get; set; } //画像の名前 15 16} 17 18public class Chara : Status 19{ 20 //こんすとらくた 21 public Chara(string name, int lv, int hp, int mp, int at, int df, int sp, int spd, string image) 22 { 23 Name = name; 24 Level = lv; 25 HP = hp; 26 Max_HP = HP; 27 MP = mp; 28 Max_MP = MP; 29 ATTACK = at; 30 DEFENCE = df; 31 SPIRIT = sp; 32 SPEED = spd; 33 Living = true; 34 Image = image; 35 } 36} 37 38public class MoveController : MonoBehaviour 39{ 40 public static Chara[] Player = new Chara[4]; 41 public static Chara[] Teki = new Chara[2]; 42 43 void Start() 44 { 45 this.rigidBody = GetComponent<Rigidbody2D>(); 46 // 衝突時にobjectを回転させない設定 47 this.rigidBody.constraints = RigidbodyConstraints2D.FreezeRotation; 48 49 //インスタンス 50 Player[0] = new Chara(" ", 1, 100, 15, 15, 15, 10, 5, " "); 51 Player[1] = new Chara(" ", 1, 120, 20, 15, 10, 20, 10, " "); 52 Player[2] = new Chara(" ", 1, 100, 10, 10, 10, 10, 15, " "); 53 Player[3] = new Chara(" ", 1, 90, 30, 0, 5, 30, 5, " "); 54 55 56 Teki[0] = new Chara(" ", 1, 10, 4, 1, 1, 10, 5, " "); 57 Teki[1] = new Chara(" ", 10, 1000, 10, 10, 10, 10, 5, " "); 58 59 } 60}
上記のコードは今作っているRPGのステータスです。
現在戦闘場面で、どうやって味方敵素早さ順で交互に行動させようか悩んでいます。
一応、ソート順でやろうかなと考えていますが、どうやって異なるインスタンスを組み合わせてソート順(素早さを)に並べるか方法が分かりません。
どなたか助言をお願います。
敵味方交互の順番にするのであれば、2つの配列をマージする必要がなさそうに思えます。
提示されている例だと、順番は
Player[2]→Teki[0]→Player[1]→Teki[1]→Player[0]→Player[3]
ということですか?
それとも、ターン関係なく常に敵味方が交互ということで
Player[2]→Teki[0]→Player[1]→Teki[1]→Player[0]→Teki[0]→Player[3]→Teki[1]
ということですか?
そうではなく、敵味方を完全にマージしてSpeed順にするということですか?
また、Speedが同じ値の場合はその中でどうやって順番付けするのでしょうか?
敵味方を完全にマージしてSpeed順で、
Player[3]→Player[2]→Teki[0]→Player[1]→Teki[1]→Player[0]という風に考えています。
スピードが同じ場合はまだ考えていないです。
Speedはコンストラクタの最後から2つ目の引数だから、Player[3]はSpeed=5なのでは?
また、Speedが同じ場合は考えていないとのことですが、Speed=5のキャラクターが4ついて、明らかに順番をつけているように見えますがどのような基準で順番をつけているのでしょうか?
すみません!
間違えました!
Player[2]→Player[1]→Teki[0]→Player[0]→Teki[1]→Player[3]
です!
回答2件
あなたの回答
tips
プレビュー