Слои и маски
Часть раздела Сигналы и столкновения путешествия по Godot на Coddy. Урок 22 из 27.
Тела и области находятся на пронумерованных слоях столкновений. У каждого есть два параметра:
collision_layer: слои, на которых он находится.collision_mask: слои, за которыми он следит. Область замечает только тела на слое, указанном в её маске.
Оба параметра — числа. Слой 1 — это 1, слой 2 — 2, слой 3 — 4, слой 4 — 8. Изначально всё находится на слое 1 с маской 1, поэтому всё замечает всё.
Здесь игрок находится на слое 2, а коралловый шар — на слое 1. Чтобы только игрок мог подобрать монету, монета следит только за слоем 2:
func _ready():
collision_mask = 2Задание
СреднеКатящийся шар забирает монету раньше, чем успеваешь ты. В _ready() установи для collision_mask монеты значение, при котором она замечает только слой 2 — слой игрока. Шар должен проходить сквозь монету. Затем подойди и забери её.
Попробуйте сами
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
queue_free()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сигналы и столкновения
Потренируйтесь самостоятельно: Песочница Godot