25 lines
700 B
GDScript
25 lines
700 B
GDScript
extends Camera2D
|
|
|
|
@export var zoom_speed: float = 0.5
|
|
@export var min_zoom: float = 1.0
|
|
@export var max_zoom: float = 5.0
|
|
@export var zoom_smoothing: float = 10.0
|
|
|
|
var target_zoom: Vector2
|
|
|
|
func _ready():
|
|
target_zoom = zoom
|
|
|
|
func _process(delta):
|
|
zoom = zoom.lerp(target_zoom, zoom_smoothing * delta)
|
|
|
|
func _unhandled_input(event):
|
|
if event is InputEventMouseButton:
|
|
if event.is_pressed():
|
|
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
|
|
target_zoom += Vector2(zoom_speed, zoom_speed)
|
|
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
|
target_zoom -= Vector2(zoom_speed, zoom_speed)
|
|
|
|
target_zoom = target_zoom.clamp(Vector2(min_zoom, min_zoom), Vector2(max_zoom, max_zoom))
|