CharacterBody2D
Часть раздела Ввод и перемещение путешествия по Godot на Coddy. Урок 7 из 28.
Node2D проходит сквозь стены. CharacterBody2D сталкивается с препятствиями. На вкладке Scene узел Hero теперь имеет тип CharacterBody2D. Его дочерний узел CollisionShape2D — это круг, соответствующий твёрдой части героя. У стен и колонны тоже есть формы столкновений.
У тела есть velocity — значение типа Vector2, измеряемое в пикселях в секунду. Задание этого значения само по себе ничего не перемещает. move_and_slide() перемещает тело с заданной скоростью в течение одного кадра и останавливает его при столкновении с любым твёрдым объектом:
func _physics_process(delta):
velocity = Vector2(150, 0)
move_and_slide()Перемещай тела в _physics_process, который выполняется синхронно с физикой. move_and_slide() учитывает время кадра, поэтому никогда не умножай velocity на delta.
Задание
ЛегкоСкорость героя velocity установлена на 150 пикселей в секунду вправо. Вызови move_and_slide(), чтобы он двигался и остановился у колонны.
Попробуйте сами
extends CharacterBody2D
func _physics_process(delta):
velocity = Vector2(150, 0)
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ввод и перемещение
2CharacterBody2D
CharacterBody2DХодьба с помощью скоростиСтены останавливаютХодьба повсюдуРавномерные диагоналиПотренируйтесь самостоятельно: Песочница Godot