Поворачивайся в направлении движения
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 20 из 28.
Герой нарисован лицом вправо и продолжает смотреть вправо, когда бежит влево.
Всё, что ты видишь у героя, находится в его дочернем узле Look. Значение scale.x, равное -1, зеркально отражает узел и его дочерние узлы слева направо. Поэтому отрази Look:
if direction > 0:
$Look.scale.x = 1
if direction < 0:
$Look.scale.x = -1Не отражай сам CharacterBody2D, чтобы его форма столкновения осталась без изменений. Если ни одна клавиша не нажата, direction равен 0, и ни один блок if не выполняется. Герой продолжает смотреть в сторону, в которую двигался в последний раз.
Задание
ЛегкоПусть персонаж поворачивается в направлении бега. Установи $Look.scale.x в значение -1, когда он бежит влево, и 1, когда он бежит вправо. Когда он остановится, он продолжит смотреть в том же направлении.
Попробуйте сами
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
move_and_slide()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ввод и перемещение
1Действия ввода
Нажми, чтобы двигатьсяВлево и вправоОдна осьЧетыре направленияТолько что нажатоНеобработанный ввод4Плавное движение
Плавное ускорениеТрениеПоворачивайся в направлении движенияНе выходи за границы экранаОграничение по обеим осямПотренируйтесь самостоятельно: Песочница Godot