Области взаимодействуют
Часть раздела Сигналы и столкновения путешествия по Godot на Coddy. Урок 6 из 27.
Узлы Godot имеют встроенные сигналы. У Area2D есть четыре сигнала, которые вы будете часто использовать:
body_enteredиbody_exited: тело вошло или вышло. Тела — это твёрдые объекты, напримерCharacterBody2DиStaticBody2D.area_enteredиarea_exited: другая область вошла или вышла.
Область никогда не отправляет сигнал body_entered для другой области. Падающие звёзды — это области, поэтому корзине нужен сигнал area_entered:
func _ready():
area_entered.connect(_on_star_caught)Функция получает вошедшую область, поэтому принимает одно значение, как _on_body_entered(body). Вы можете назвать его как угодно.
Задание
ЛегкоДве звезды падают в корзину, но в консоли ничего не появляется. Корзина отслеживает не тот сигнал. Сделай так, чтобы для каждой звезды выводилось Caught a star!.
Попробуйте сами
extends Area2D
func _ready():
body_entered.connect(_on_star_caught)
func _on_star_caught(star):
print("Caught a star!")
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сигналы и столкновения
2Сигналы
Области взаимодействуютСвой сигналСигналы со значениямиСигнал другого узлаСлушаем свой сигналПотренируйтесь самостоятельно: Песочница Godot