24 lines
681 B
GDScript
24 lines
681 B
GDScript
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
|
|
)
|