Muitos espinhos, uma função
Parte da seção Sinais e colisões do Journey de Godot da Coddy. Lição 21 de 27.
Um nível pode ter muitos espinhos que fazem a mesma coisa. Conecte todos eles a uma função com um loop que percorre o grupo:
for spike in get_tree().get_nodes_in_group("spikes"):
spike.body_entered.connect(_on_spike_body_entered)Cada iteração do loop conecta o próximo espinho por meio de body_entered. Seja qual for a fileira em que você tocar, a mesma função será executada e receberá o seu corpo.
Uma quinta fileira adicionada ao grupo funciona sem nenhum código novo. As quatro fileiras aqui estão no grupo spikes.
Desafio
MédioFaça com que cada fileira de espinhos faça você voltar ao início.
- Em
_ready(), substitua a única linhaconnectpor um loopforsobre o grupospikes. - Dentro do loop, conecte o
body_enteredde cada nó a_on_spike_body_entered.
Pressione “Jogar” e caminhe até qualquer espinho: você volta ao início. Em seguida, pressione “Verificar”.
Experimente você mesmo
extends Node2D
func _ready():
$Spikes1.body_entered.connect(_on_spike_body_entered)
func _on_spike_body_entered(body):
body.position = Vector2(80, 280)
Todas as lições de Sinais e colisões
Pratique por conta própria: Playground de Godot