Menu
CoddyTech
flag Ru iconРусскийdown icon

Стены останавливают

Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 9 из 28.

Стены и колонна — это узлы StaticBody2D. Статическое тело никогда не движется. У каждого есть CollisionShape2D для его твёрдой формы и ColorRect для её отрисовки.

Только move_and_slide() проверяет наличие стен. Изменение position перемещает тело без проверки, поэтому оно проходит сквозь стены:

position.x += direction * speed * delta   # сквозь стены
velocity.x = direction * speed            # останавливается при столкновении со стенами
move_and_slide()

Текст после # — это комментарий. Godot его пропускает.

Тело, которое ударяется о стену под углом, сохраняет составляющую движения вдоль стены. Оно скользит, а не застревает, отсюда и название move_and_slide().

challenge icon

Задание

Легко

Этот герой проходит сквозь колонну и стены. Перемещай его с помощью velocity и move_and_slide(), чтобы стены его останавливали.

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

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
	var direction = Input.get_axis("move_left", "move_right")
	position.x += direction * speed * delta
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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

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