Menu
CoddyTech

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.

challenge icon

Desafio

Médio

Faça com que Main ouça cada moeda que for coletada.

  1. Em coin.gd, declare signal collected e emita o sinal antes de queue_free().
  2. No _ready() de main.gd, conecte o collected de cada moeda a uma nova função _on_coin_collected().
  3. 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

Pratique por conta própria: Playground de Godot