Menu
CoddyTech

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.

challenge icon

Desafio

Médio

Faça com que cada fileira de espinhos faça você voltar ao início.

  1. Em _ready(), substitua a única linha connect por um loop for sobre o grupo spikes.
  2. Dentro do loop, conecte o body_entered de 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