22 lines
705 B
GDScript
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)
|