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.
Sfida
MedioFai in modo che ogni fila di spuntoni ti rimandi indietro.
- In
_ready(), sostituisci l'unica rigaconnectcon un cicloforsul gruppospikes. - All'interno del ciclo, collega
body_entereddi 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
2Segnali
Le aree si incontranoIl tuo segnaleSegnali con valoriIl segnale di un altro nodoAscolta il tuo segnale5Pericoli
Gli spuntoni ti fanno tornare indietroUn checkpointTanti spuntoni, una sola funzioneLivelli e maschereEsercitati da solo: Playground Godot