Esempio n. 1
0
        void MotionUnit_IntersectsUnit(object sender, Common.IMotion.IntersectsObjectEventArgs args)
        {
            Common.IMotion.IUnit obj = (Common.IMotion.IUnit)args.IObject;
            var u = obj.Tag as Unit;

            if (intersectedUnits.Contains(u))
            {
                return;
            }
            intersectedUnits.Add(u);
            TryHit(u);
        }
Esempio n. 2
0
 protected override void UpdateMotionObject()
 {
     if (CanBeDestroyed && PhysicsLocalBounding != null)
     {
         Common.IMotion.IUnit mo = MotionUnit;
         if (mo == null)
         {
             mo = (Common.IMotion.IUnit)NewMotionObject();
         }
         mo.LocalBounding = PhysicsLocalBounding;
         mo.Weight        = PhysicalWeight;
         mo.Position      = Position;
         mo.Rotation      = Quaternion.RotationAxis(Vector3.UnitZ, Orientation);
         mo.Scale         = Scale;
         mo.Tag           = this;
         mo.TurnSpeed     = GraphicalTurnSpeed;
         MotionObject     = mo;
     }
     else
     {
         MotionObject = null;
     }
 }