opencyber/scripts/camera_controller.gd

22 lines
705 B
GDScript

extends Camera2D
@export var min_zoom: float = 0.5
@export var max_zoom: float = 4.0
@export var zoom_speed: float = 0.1
@export var target_zoom: float = 2.0
func _ready() -> void:
zoom = Vector2(target_zoom, target_zoom)
func _input(event: InputEvent) -> void:
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
target_zoom = clamp(target_zoom - zoom_speed, min_zoom, max_zoom)
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
target_zoom = clamp(target_zoom + zoom_speed, min_zoom, max_zoom)
func _process(delta: float) -> void:
var current_zoom = zoom.x
var new_zoom = lerp(current_zoom, target_zoom, delta * 10)
zoom = Vector2(new_zoom, new_zoom)