Menu
CoddyTech

Слои и маски

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

Задание

Средне

Сделай так, чтобы монета замечала только игрока.

  1. Игрок находится на слое 2. В начале _ready() задай монете collision_mask, чтобы она замечала только слой 2.
  2. Оставь строку connect как есть.

Нажми «Играть»: мяч прокатится сквозь монету, а затем подойди и забери её. Затем нажми «Проверить».

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

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

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

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

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

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