Menu
CoddyTech

Одна ось

Часть раздела Ввод и перемещение путешествия по 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, герой стоит на месте.

challenge icon

Задание

Легко

Перемещай героя влево и вправо с помощью одной строки ввода.

  1. В _process() сохрани Input.get_axis("move_left", "move_right") в var direction.
  2. Перемещай position.x на direction * speed в секунду.

Нажми «Играть»: стрелки перемещают героя со скоростью 300 пикселей в секунду, а нажатие обеих стрелок одновременно оставляет его на месте. Затем нажми «Проверить».

Попробуйте сами

extends Node2D

var speed = 300

func _process(delta):
	pass

Все уроки раздела Ввод и перемещение

Потренируйтесь самостоятельно: Песочница Godot