将指令抽象为一组字节码,通过字节码的排列组合定义游戏行为,使得玩家或者策划能够自由设计游戏行为(例如AI)。
数据驱动让游戏逻辑脱离编码的限制,赋予数据 行为。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| class Program { static void Main(string[] args) { var stack = new Stack<int>(); var actlist = new List<int>() { 50, 1, 21, 2, 100,3 }; actlist.ForEach(x => { stack.Push(x); });
var player = new Character();
while (stack.Count > 0) { var act = (ActType)stack.Pop();
switch (act) { case ActType.AddHp: var parm = stack.Pop(); player.AddHp(parm); break; case ActType.PlaySound: parm = stack.Pop(); player.PlaySound(parm); break; case ActType.Spell: parm = stack.Pop(); player.Spell(parm); break; default: break; } }
} }
enum ActType { AddHp = 1, Spell = 2, PlaySound = 3 }
class Character { public int Hp { get; set; } = 100; public int Mp { get; set; } = 200;
public void AddHp(int value) { Hp += value; Console.WriteLine($"增加生命值:{value}"); }
public void Spell(int pos) { Console.WriteLine($"释放法术:{pos}"); }
public void PlaySound(int id) { Console.WriteLine($"播放音效: {id}"); } }
|