// Internal method for checking rectangle to rectangle collisions.
 private static bool collisionCheckRectsDirected(Hitbox a, Hitbox b)
 {
     Vector2 center = new Vector2(b.hitbox.x, b.hitbox.y);
     b.rotate(-2*b.angle);
     Vector2 rotated_b1 = alignPoint(new Vector2(b.hitbox.x + b.halfSize.x, b.hitbox.y + b.halfSize.y), b);
     Vector2 rotated_b2 = alignPoint(new Vector2(b.hitbox.x - b.halfSize.x, b.hitbox.y + b.halfSize.y), b);
     b.rotate(-2*b.angle);
     Vector2 rotated_b3 = center - rotated_b1;
     rotated_b1 += center;
     Vector2 rotated_b4 = center - rotated_b2;
     rotated_b2 += center;
     return pointInRect(a, rotated_b1) || pointInRect(a, rotated_b2) || pointInRect(a, rotated_b3) ||
             pointInRect(a, rotated_b4);
 }