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