Fix Camera2D limits drawing

This commit is contained in:
arkology 2025-02-14 20:24:13 +03:00
parent b607110ad2
commit 698cc24416

View File

@ -391,7 +391,7 @@ void Camera2D::_notification(int p_what) {
inv_camera_transform.xform(Vector2(0, screen_size.height))
};
Transform2D inv_transform = get_global_transform().affine_inverse(); // undo global space
Transform2D inv_transform = get_global_transform().affine_inverse(); // Undo global space.
for (int i = 0; i < 4; i++) {
draw_line(inv_transform.xform(screen_endpoints[i]), inv_transform.xform(screen_endpoints[(i + 1) % 4]), area_axis_color, area_axis_width);
@ -405,13 +405,13 @@ void Camera2D::_notification(int p_what) {
limit_drawing_width = 3;
}
Vector2 camera_origin = get_global_position();
Vector2 camera_scale = get_global_scale().abs();
Transform2D inv_transform = get_global_transform().affine_inverse();
Vector2 limit_points[4] = {
(Vector2(limit[SIDE_LEFT], limit[SIDE_TOP]) - camera_origin) / camera_scale,
(Vector2(limit[SIDE_RIGHT], limit[SIDE_TOP]) - camera_origin) / camera_scale,
(Vector2(limit[SIDE_RIGHT], limit[SIDE_BOTTOM]) - camera_origin) / camera_scale,
(Vector2(limit[SIDE_LEFT], limit[SIDE_BOTTOM]) - camera_origin) / camera_scale
inv_transform.xform(Vector2(limit[SIDE_LEFT], limit[SIDE_TOP])),
inv_transform.xform(Vector2(limit[SIDE_RIGHT], limit[SIDE_TOP])),
inv_transform.xform(Vector2(limit[SIDE_RIGHT], limit[SIDE_BOTTOM])),
inv_transform.xform(Vector2(limit[SIDE_LEFT], limit[SIDE_BOTTOM]))
};
for (int i = 0; i < 4; i++) {
@ -436,7 +436,7 @@ void Camera2D::_notification(int p_what) {
inv_camera_transform.xform(Vector2((screen_size.width / 2) - ((screen_size.width / 2) * drag_margin[SIDE_LEFT]), (screen_size.height / 2) + ((screen_size.height / 2) * drag_margin[SIDE_BOTTOM])))
};
Transform2D inv_transform = get_global_transform().affine_inverse(); // undo global space
Transform2D inv_transform = get_global_transform().affine_inverse(); // Undo global space.
for (int i = 0; i < 4; i++) {
draw_line(inv_transform.xform(margin_endpoints[i]), inv_transform.xform(margin_endpoints[(i + 1) % 4]), margin_drawing_color, margin_drawing_width);