@Ne_Gr1tos

Что делать если персонаж не передвигается?

Проблема в том, что при нажатии любой клавиши передвижения персонаж сдвигается на одну координату а после отпускания клавиши он в возвращается в нулевую точку.
Делал по офф. документации - 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)
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@mikeyuriev
Вот тут у вас позиция просто обнуляется:
position = velocity * delta
Правильно:
position += velocity * delta
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы