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; }
public Collision() { collisionBox = new Rectangle(); collisionCircle = new Circle(); collisionPolygon = new Polygon(); }