Coletor de Moedas: Coletadas
Parte da seção Sinais e colisões do Journey de Godot da Coddy. Lição 25 de 27.
main.gd contém as regras do jogo, como quantas moedas ainda restam. Main precisa saber sobre cada moeda que você pega. Então, cada moeda envia um sinal, e Main escuta todos eles.
Em coin.gd, declare signal collected e emita o sinal logo antes de a moeda liberar a si mesma:
if body.is_in_group("player"):
collected.emit()
queue_free()Em main.gd, conecte cada moeda do grupo, como você fez com os espinhos:
for coin in get_tree().get_nodes_in_group("coins"):
coin.collected.connect(_on_coin_collected)Isso funciona no _ready() de Main porque Godot prepara os filhos antes do pai. Nesse momento, todas as moedas já entraram no grupo.
Desafio
MédioFaça com que Main ouça cada moeda que for coletada.
- Em
coin.gd, declaresignal collectede emita o sinal antes dequeue_free(). - No
_ready()demain.gd, conecte ocollectedde cada moeda a uma nova função_on_coin_collected(). - Faça essa função imprimir
Got a coin!.
Pressione “Jogar” e passe por cima de uma moeda: o Console mostra Got a coin!. Depois, “Verificar”.
Experimente você mesmo
extends Node2D
func _ready():
pass
Todas as lições de Sinais e colisões
6Projeto: Coletor de Moedas
Coletor de Moedas: AndarColetor de Moedas: MoedasPratique por conta própria: Playground de Godot