extends Node2D @export var camera_rect: Rect2 @onready var camera = %Camera2D as Camera2D var speed := 150 var current_speed := Vector2.ZERO func _process(delta: float) -> void: # move camera according to current_speed var direction = Vector2(Input.get_axis("left", "right"), Input.get_axis("up", "down")) current_speed = direction * speed camera.position += current_speed * delta # clamp inside camera_rect if camera_rect: camera.position.x = clamp( camera.position.x, camera_rect.position.x, camera_rect.position.x + camera_rect.size.x ) camera.position.y = clamp( camera.position.y, camera_rect.position.y, camera_rect.position.y + camera_rect.size.y )