diff options
Diffstat (limited to 'Camera.gd')
-rw-r--r-- | Camera.gd | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Camera.gd b/Camera.gd new file mode 100644 index 0000000..c49233a --- /dev/null +++ b/Camera.gd @@ -0,0 +1,26 @@ +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() |