Menu
CoddyTech

Raccogli monete: Raccolte

Fa parte della sezione Segnali e collisioni del percorso Godot di Coddy. Lezione 25 di 27.

main.gd contiene le regole del gioco, ad esempio quante monete restano. Main deve sapere di ogni moneta che raccogli. Perciò ogni moneta invia un segnale e Main li ascolta tutti.

In coin.gd, dichiara signal collected ed emettilo appena prima che la moneta si liberi:

if body.is_in_group("player"):
	collected.emit()
	queue_free()

In main.gd, collega ogni moneta del gruppo, come hai fatto con le punte:

for coin in get_tree().get_nodes_in_group("coins"):
	coin.collected.connect(_on_coin_collected)

Questo funziona in _ready() di Main perché Godot prepara i nodi figli prima del nodo genitore. A quel punto, tutte le monete sono entrate nel gruppo.

challenge icon

Sfida

Medio

Fai in modo che Main senta ogni moneta raccolta.

  1. In coin.gd, dichiara signal collected ed emettilo prima di queue_free().
  2. In main.gd, dentro _ready(), collega il segnale collected di ogni moneta a una nuova funzione _on_coin_collected().
  3. Fai in modo che questa funzione stampi Got a coin!.

Premi «Gioca» e cammina sopra una moneta: la console mostra Got a coin!. Poi premi «Verifica».

Provalo tu

extends Node2D

func _ready():
	pass

Tutte le lezioni di Segnali e collisioni

Esercitati da solo: Playground Godot