Области взаимодействуют
Часть раздела Сигналы и столкновения путешествия по 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). Ты можешь назвать его как угодно.
Задание
ЛегкоСделай так, чтобы корзина замечала падающие звёзды.
- Звёзды — это области, а не тела. В
_ready()подключиarea_enteredвместоbody_entered. - Оставь
_on_star_caughtв качестве функции.
Нажми «Играть»: в консоли дважды появится Caught a star! — по одному разу для каждой звезды. Затем нажми «Проверить».
Попробуйте сами
extends Area2D
func _ready():
body_entered.connect(_on_star_caught)
func _on_star_caught(star):
print("Caught a star!")
Все уроки раздела Сигналы и столкновения
2Сигналы
Области взаимодействуютСвой сигналСигналы со значениямиСигнал другого узлаСлушаем свой сигналПотренируйтесь самостоятельно: Песочница Godot