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); }
/// <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); }