Одна ось
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 3 из 28.
Лево и право — это два конца одной линии, оси. Input.get_axis() проверяет оба действия и возвращает одно число:
-1, пока удерживается первое действие (влево)1, пока удерживается второе действие (вправо)0, когда ни одно действие не удерживается или удерживаются оба
Умножь это число на скорость, и герой будет двигаться в нужную сторону без if:
var speed = 300
func _process(delta):
var direction = Input.get_axis("move_left", "move_right")
position.x += direction * speed * deltaКогда direction равно -1, значение x уменьшается, и герой движется влево. Когда оно равно 0, герой стоит на месте.
Задание
ЛегкоПеремещай героя влево и вправо с помощью одной строки ввода.
- В
_process()сохраниInput.get_axis("move_left", "move_right")вvar direction. - Перемещай
position.xнаdirection * speedв секунду.
Нажми «Играть»: стрелки перемещают героя со скоростью 300 пикселей в секунду, а нажатие обеих стрелок одновременно оставляет его на месте. Затем нажми «Проверить».
Попробуйте сами
extends Node2D
var speed = 300
func _process(delta):
pass
Все уроки раздела Ввод и перемещение
Потренируйтесь самостоятельно: Песочница Godot