Проблема в том, что при нажатии любой клавиши передвижения персонаж сдвигается на одну координату а после отпускания клавиши он в возвращается в нулевую точку.
Делал по офф. документации -
https://docs.godotengine.org/ru/4.x/getting_starte...
Вот код для ознакомления:
extends Area2D
@export var speed = 400
var screen_size
func _ready():
screen_size = get_viewport_rect().size
func _process(delta):
var velocity = Vector2.ZERO
if Input.is_action_pressed("move_right"):
velocity.x += 1
if Input.is_action_pressed("move_left"):
velocity.x -= 1
if Input.is_action_pressed("move_down"):
velocity.y += 1
if Input.is_action_pressed("move_up"):
velocity.y -= 1
if velocity.length() > 0:
velocity = velocity.normalized() * speed
$AnimatedSprite2D.play()
else:
$AnimatedSprite2D.stop()
position = velocity * delta
position = position.clamp(Vector2.ZERO, screen_size)