Слои и маски
Часть раздела Сигналы и столкновения путешествия по 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Задание
СреднеСделай так, чтобы монета замечала только игрока.
- Игрок находится на слое 2. В начале
_ready()задай монетеcollision_mask, чтобы она замечала только слой 2. - Оставь строку
connectкак есть.
Нажми «Играть»: мяч прокатится сквозь монету, а затем подойди и забери её. Затем нажми «Проверить».
Попробуйте сами
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
queue_free()
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сигналы и столкновения
Потренируйтесь самостоятельно: Песочница Godot