Esempio n. 1
0
        protected void SolveCollision(PhysicalObject o)
        {
            ActionWithObject <PhysicalObject> lAction;

            if (mCollisionBehavior.TryGetValue(o.GetType(), out lAction))
            {
                lAction(o);
            }
        }
Esempio n. 2
0
        public void SolveIfCollision(PhysicalObject o)
        {
            var lIsValidCollision = IsValidCollision(o);

            if (lIsValidCollision)
            {
                SolveCollision(o);
            }
        }
Esempio n. 3
0
 private bool IsValidCollision(PhysicalObject o)
 {
     if (!IsDestroyed && mInvincibleSteps == 0)
     {
         return(IsCollision(o));
     }
     else
     {
         return(false);
     }
 }
Esempio n. 4
0
        private bool IsCollision(PhysicalObject o)
        {
            bool lIsCollision = false;

            foreach (var lMyCollisionMask in CollisionMask)
            {
                foreach (var lOthersCollisionmask in o.CollisionMask)
                {
                    if (lMyCollisionMask.IsCollision(lOthersCollisionmask))
                    {
                        lIsCollision = true;
                        break;
                    }
                }
                if (lIsCollision)
                {
                    break;
                }
            }
            return(lIsCollision);
        }
Esempio n. 5
0
 protected void DefaultCollisionSolve(PhysicalObject o)
 {
     Destroy();
     DestroyEffect();
 }
Esempio n. 6
0
 public double SquaredDistance(PhysicalObject aOther)
 {
     return((mPosition.X - aOther.Position.X) * (mPosition.X - aOther.Position.X)
            + (mPosition.Y - aOther.Position.Y) * (mPosition.Y - aOther.Position.Y));
 }
Esempio n. 7
0
 public double Distance(PhysicalObject aOther)
 {
     return(Math.Sqrt(SquaredDistance(aOther)));
 }