Tu propia señal
Parte de la sección Señales y colisiones del Journey de Godot de Coddy. Lección 7 de 27.
Puedes darle a un nodo tus propias señales. Declara una al principio del script con signal:
extends Area2D
signal hitEnvíala con emit() cuando ocurra algo:
func _on_body_entered(body):
hit.emit()El código más antiguo puede usar emit_signal("hit"). Hace lo mismo.
Las púas solo informan de que alguien recibió un golpe. Lo que hace un golpe depende del código que escucha. Aquí, el script de Main escucha hit:
extends Node2D
# Main escucha la señal hit de los pinchos, una vez que estos la tienen.
func _ready():
if $Spikes.has_signal("hit"):
$Spikes.hit.connect(_on_spikes_hit)
func _on_spikes_hit():
print("Ouch!")
$Player.modulate = Color(1, 0.42, 0.42)Pronto escribirás detectores como este. En esta lección solo editarás las púas.
Desafío
FácilDales una señal a los pinchos y envíala cuando alguien los pise:
- Declara
signal hital principio despikes.gd. - En
_on_body_entered, envíala conhit.emit().
Pisa los pinchos. La consola debería mostrar Ouch! y te pondrás de color coral.
Pruébalo tú mismo
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Señales y colisiones
2Señales
Las áreas se encuentranTu propia señalSeñales con valoresLa señal de otro nodoEscucha tu señalPractica por tu cuenta: Playground de Godot