/// <summary> /// 同一个玩家在同一帧中有多个操作,后者会覆盖前者 /// </summary> /// <param name="ID"></param> /// <param name="op"></param> public void AddPlayerOp(ulong ID, IPlayerOp op) { if (playerDict.ContainsKey(ID) == false) { return; } else { if (opDict.ContainsKey(ID) == true) { opDict.Remove(ID); } opDict.Add(ID, op); } }
public void ApplyOp(IPlayerOp op) { if (this.isDie) { return; } switch (op.Type) { case PlayerOpEnum.Move: WalkAction wa = new WalkAction(); wa.dir = (op as MoveOp).Direction; this.ApplyChangePos(wa); break; case PlayerOpEnum.Jump: JumpAction ja = new JumpAction(); this.ApplyChangePos(ja); break; } }