Menu
CoddyTech

Области взаимодействуют

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

challenge icon

Задание

Легко

Сделай так, чтобы корзина замечала падающие звёзды.

  1. Звёзды — это области, а не тела. В _ready() подключи area_entered вместо body_entered.
  2. Оставь _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!")

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

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