knockoff/ui/menu/camera.gd

30 lines
602 B
GDScript

extends Camera2D
var dragging = false
@export var max_zoom = 2
@export var min_zoom = 0.1
func _input(event: InputEvent) -> void:
if event.is_action("drag_camera"):
if event.is_released():
dragging = false
else:
dragging = true
elif event.is_action("zoom_out"):
zoom *= 0.9
if zoom.x < min_zoom:
zoom = Vector2(min_zoom,min_zoom)
elif event.is_action("zoom_in"):
zoom *= 1.1
if zoom.x > max_zoom:
zoom = Vector2(max_zoom,max_zoom)
elif event is InputEventMouse:
if event is InputEventMouseMotion:
if dragging:
position -= event.relative / zoom.x