Files
MaidEngine/scripts/battle/camera_controller.gd
2026-04-07 08:27:50 -04:00

19 lines
688 B
GDScript

class_name CameraController extends Camera2D
func apply_drag(delta: Vector2) -> void:
var half_view: Vector2 = get_viewport_rect().size * 0.5 / zoom
var min_pos := Vector2(limit_left, limit_top) + half_view
var max_pos := Vector2(limit_right, limit_bottom) - half_view
# Guard against maps smaller than the viewport (min > max)
max_pos.x = max(min_pos.x, max_pos.x)
max_pos.y = max(min_pos.y, max_pos.y)
position = (position + delta / zoom).clamp(min_pos, max_pos)
func set_map_bounds(rect: Rect2) -> void:
limit_left = int(rect.position.x)
limit_top = int(rect.position.y)
limit_right = int(rect.position.x + rect.size.x)
limit_bottom = int(rect.position.y + rect.size.y)