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

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.

challenge icon

Задание

Легко

Скорость героя velocity установлена на 150 пикселей в секунду вправо. Вызови move_and_slide(), чтобы он двигался и остановился у колонны.

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

extends CharacterBody2D

func _physics_process(delta):
	velocity = Vector2(150, 0)
quiz iconПроверьте себя

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

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

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