public static bool PolygonCollision(Polygon polygonA, Polygon polygonB)
        {
            List<Line> LinesA = polygonA.getTransformedLines();
            List<Line> LinesB = polygonB.getTransformedLines();
            
            foreach (Line lineA in LinesA)
            {
                foreach (Line lineB in LinesB)
                {
                    if (LineIntersect(lineA, lineB))
                    {
                        return true;
                    }
                }
            }

            foreach (Line lineA in LinesA)
            {
                if (PointOverlap(lineA.StartPoint, LinesB))
                {
                    return true;
                }
            }

            foreach (Line lineB in LinesB)
            {
                if (PointOverlap(lineB.StartPoint, LinesA))
                {
                    return true;
                }
            }

            return false;
        }
예제 #2
0
 public Collision()
 {
     collisionBox = new Rectangle();
     collisionCircle = new Circle();
     collisionPolygon = new Polygon();
 }