Godot Engine не реагирует на Input.get_action_pressed("right") и реагирует на Input.get_action_pressed("move_right")
Здравствуйте, пишу код на движение по типу такого:
extends Area2D
export var speed = 400
func _process(delta):
var velocity = Vector2.ZERO # The player's movement vector.
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
$AnimatedSprite.play()
else:
$AnimatedSprite.stop()
print(velocity)
Но, если я вдруг меняю клавиши в настройках проекта на названия right, left и т.д.
и пишу код абсолютно такой же, но меняю названия кнопок, ничего не двигается. С учетом того, что я прописываю проверку print(velocity) и вектор показывает, что персонаж двигается и его координаты меняются на величину переменной speed.
func _process(delta):
var velocity = Vector2.ZERO # The player's movement vector.
if Input.is_action_pressed("right"):
velocity.x += 1
if Input.is_action_pressed("left"):
velocity.x -= 1
if Input.is_action_pressed("down"):
velocity.y += 1
if Input.is_action_pressed("up"):
velocity.y -= 1
Предполагаю, что ты неправильно настроил кнопки в настройках проекта. Проверь.
Также хочу предложить работенку. Наша молодая команда создаёт порт римки на мобильные устройства. Требуются энтузиасты. Поможем с обучением и многое другое. Если интересно, то пиши в дискорде по нику schnele
В душе не чаю, но вот тебе ответ чатгпт
В коде, который вы предоставили, есть ошибка в использовании метода Input.is _action_pressed(). Вместо Input.is _action_pressed("right"), вам нужно использовать Input.is _action_pressed("move_right"), так как в ваших действиях (actions) определены именно такие названия ("move_right", "move_left", и так далее).
Измените код следующим образом:
extends Area2D
export var speed = 400
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
$AnimatedSprite.play()
else:
$AnimatedSprite.stop()
print(velocity)
Убедитесь, что ваши действия (actions) в настройках проекта соответствуют тем, которые вы используете в коде. Если после этого код все равно не работает, убедитесь, что вы правильно настроили клавиши в проекте и проверьте, не возникает ли конфликтов с другими участками кода или настройками.