public bool TestCollision(IEnumerable <CollisionRegion> TestRegions)
        {
            foreach (CollisionRegion CurrRegion in TestRegions)
            {
                foreach (CollisionRegion MyRegion in cCollisionList)
                {
                    if (MGMath.TestCircleCollisions(CurrRegion.Origin, CurrRegion.Radius, MyRegion.Origin, MyRegion.Radius) == true)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// Test if this object is colliding with any object in a collection of regions
        /// </summary>
        /// <param name="TestRegions">Collection of regions to test collisions with</param>
        /// <returns>True if this object collides with any of the collision regions</returns>
        public bool TestCollision(IEnumerable <CollisionRegion> TestRegions)
        {
            foreach (CollisionRegion CurrRegion in TestRegions)               //Loop through all specified regions
            {
                foreach (CollisionRegion MyRegion in cCollisionList)          //Loop through all of this objects regions
                {
                    if (MyRegion.Type == CollideType.Circle)
                    {
                        if (CurrRegion.Type == CollideType.Circle)
                        {
                            if (MGMath.TestCircleCollisions(CurrRegion.Origin, CurrRegion.Radius, MyRegion.Origin, MyRegion.Radius) == true)
                            {
                                return(true);
                            }
                        }
                        else                             //CurrRegion is a rectangle (MyRegion is Circle)
                        {
                            if (MGMath.TestCircleRectangleCollision(CurrRegion.Origin, CurrRegion.RectOffsets, MyRegion.Origin, MyRegion.Radius) == true)
                            {
                                return(true);
                            }
                        }
                    }
                    else                         //My Region is a rectangle
                    {
                        if (CurrRegion.Type == CollideType.Circle)
                        {
                            if (MGMath.TestCircleRectangleCollision(MyRegion.Origin, MyRegion.RectOffsets, CurrRegion.Origin, CurrRegion.Radius) == true)
                            {
                                return(true);
                            }
                        }
                        else                             //CurrRegion is a rectangle (MyRegion is Rectangle)
                        {
                            if (MGMath.TestRectangleCollisions(CurrRegion.Origin, CurrRegion.RectOffsets, MyRegion.Origin, MyRegion.RectOffsets) == true)
                            {
                                return(true);
                            }
                        }
                    }
                }
            }

            return(false);
        }