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

Слои и маски

Часть раздела Сигналы и столкновения путешествия по 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
challenge icon

Задание

Средне

Катящийся шар забирает монету раньше, чем успеваешь ты. В _ready() установи для collision_mask монеты значение, при котором она замечает только слой 2 — слой игрока. Шар должен проходить сквозь монету. Затем подойди и забери её.

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

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	queue_free()
quiz iconПроверьте себя

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

Все уроки раздела Сигналы и столкновения

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