public void AddUnit(BattleUnit Unit) { Status.Add(Unit.GetStatus()); Units.Add(Unit); }
/// <summary> /// 被别人击中 /// </summary> /// <param name="Unit"></param> public override void OnHitByAnother(BattleUnit Unit) { throw new NotImplementedException(); }
/// <summary> /// 被其他物体撞到 /// </summary> /// <param name="Unit"></param> public abstract void OnHitByAnother(BattleUnit Unit);
/// <summary> /// 检测是否碰撞 /// </summary> /// <param name="UnitA"></param> /// <param name="UnitB"></param> /// <returns></returns> public static bool IsCollision(BattleUnit UnitA,BattleUnit UnitB) { if (Math.Abs(UnitA.X - UnitB.X) < (UnitA.Width + UnitB.Width) / 2 && Math.Abs(UnitA.Y - UnitB.Y) < (UnitA.Height + UnitB.Height) / 2) return true; else return false; }
/// <summary> /// 向战场添加一个物件 /// </summary> /// <param name="Unit">物件</param> private void AddUnit(BattleUnit Unit) { BU_Robot bot = Unit as BU_Robot; if (bot != null) _robs.Add(Unit.UnitID, bot); _units.Add(Unit.UnitID, bot); }
/// <summary> /// 清除一个物件 /// </summary> /// <param name="Unit"></param> private void RemoveUnit(BattleUnit Unit) { if (_robs.ContainsKey(Unit.UnitID)) _robs.Remove(Unit.UnitID); if (_units.ContainsKey(Unit.UnitID)) _units.Remove(Unit.UnitID); }