extends Camera2D var is_in_drag_mode = false var drag_anchor = Vector2.ZERO func _input(event): if event.is_action("camera_zoom_out"): var new_zoom = max(zoom.x - 0.1, 0.5) zoom = Vector2(new_zoom, new_zoom) if event.is_action("camera_zoom_in"): var new_zoom = min(zoom.x + 0.1, 3) zoom = Vector2(new_zoom, new_zoom) #global_position -= (global_position + (get_viewport_rect().size/2) - get_global_mouse_position()) if event.is_action_pressed("camera_drag"): is_in_drag_mode = true drag_anchor = get_global_mouse_position() elif event.is_action_released("camera_drag"): is_in_drag_mode = false func _process(_delta): if is_in_drag_mode: global_position += drag_anchor - get_global_mouse_position()