Menu
CoddyTech

Tanti spuntoni, una sola funzione

Fa parte della sezione Segnali e collisioni del percorso Godot di Coddy. Lezione 21 di 27.

Un livello può avere molti aculei che fanno tutti la stessa cosa. Collegali tutti a un’unica funzione con un ciclo sul loro gruppo:

for spike in get_tree().get_nodes_in_group("spikes"):
	spike.body_entered.connect(_on_spike_body_entered)

A ogni iterazione del ciclo viene collegato il body_entered dell’aculeo successivo. Qualunque fila tocchi, viene eseguita la stessa funzione e riceve il tuo corpo.

Una quinta fila aggiunta al gruppo funziona senza bisogno di nuovo codice. Le quattro file qui appartengono al gruppo spikes.

challenge icon

Sfida

Medio

Fai in modo che ogni fila di spuntoni ti rimandi indietro.

  1. In _ready(), sostituisci l'unica riga connect con un ciclo for sul gruppo spikes.
  2. All'interno del ciclo, collega body_entered di ogni nodo a _on_spike_body_entered.

Premi «Gioca» e cammina contro qualsiasi spuntoni: torni all'inizio. Poi premi «Verifica».

Provalo tu

extends Node2D

func _ready():
	$Spikes1.body_entered.connect(_on_spike_body_entered)

func _on_spike_body_entered(body):
	body.position = Vector2(80, 280)

Tutte le lezioni di Segnali e collisioni

Esercitati da solo: Playground Godot