Muchas púas, una función
Parte de la sección Señales y colisiones del Journey de Godot de Coddy. Lección 21 de 27.
Un nivel puede tener muchos pinchos que hacen todos lo mismo. Conéctalos todos a una función con un bucle sobre su grupo:
for spike in get_tree().get_nodes_in_group("spikes"):
spike.body_entered.connect(_on_spike_body_entered)En cada vuelta del bucle se conecta el siguiente pincho mediante body_entered. Cualquiera de las filas que toques ejecutará la misma función y obtendrá tu cuerpo.
Una quinta fila añadida al grupo funciona sin código nuevo. Las cuatro filas de aquí están en el grupo spikes.
Desafío
IntermedioHaz que cada fila de pinchos te haga volver al inicio.
- En
_ready(), reemplaza la única líneaconnectpor un bucleforque recorra el grupospikes. - Dentro del bucle, conecta el
body_enteredde cada nodo con_on_spike_body_entered.
Pulsa «Jugar» y camina hacia cualquier pincho: volverás al inicio. Después, pulsa «Comprobar».
Pruébalo tú mismo
extends Node2D
func _ready():
$Spikes1.body_entered.connect(_on_spike_body_entered)
func _on_spike_body_entered(body):
body.position = Vector2(80, 280)
Todas las lecciones de Señales y colisiones
Practica por tu cuenta: Playground de Godot