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.
Sfida
MedioFai in modo che Main senta ogni moneta raccolta.
- In
coin.gd, dichiarasignal collecteded emettilo prima diqueue_free(). - In
main.gd, dentro_ready(), collega il segnalecollecteddi ogni moneta a una nuova funzione_on_coin_collected(). - 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
6Progetto: Raccogli monete
Raccogli monete: CamminaRaccogli monete: MoneteEsercitati da solo: Playground Godot