2025-07-22 11:59:08 +00:00
|
|
|
extends Control
|
|
|
|
|
|
|
|
@export var camera_rect := Rect2()
|
|
|
|
|
|
|
|
@onready var camera = %Camera2D as Camera2D
|
|
|
|
|
2025-07-28 11:40:35 +00:00
|
|
|
var speed := 2
|
2025-07-22 11:59:08 +00:00
|
|
|
|
|
|
|
func display() -> void:
|
|
|
|
visible = true
|
|
|
|
# var current_camera = get_viewport().get_camera_2d()
|
|
|
|
# current_camera.enabled = false
|
|
|
|
camera.enabled = true
|
|
|
|
camera.make_current()
|
|
|
|
|
|
|
|
func _process(delta: float) -> void:
|
|
|
|
if not is_visible_in_tree():
|
|
|
|
return
|
|
|
|
# 镜头中心 -> 鼠标位置
|
2025-07-28 11:40:35 +00:00
|
|
|
var center_pos = camera.global_position
|
2025-07-22 11:59:08 +00:00
|
|
|
var direction = (camera.get_global_mouse_position() - center_pos).normalized()
|
|
|
|
var target = camera_rect.get_support(direction)
|
|
|
|
camera.position = camera.position.lerp(target, delta * speed)
|
|
|
|
|