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 asignarle tus propias señales a un nodo. Declara una al principio del script con signal:
extends Area2D
signal hitEmítela con emit() cuando ocurra algo:
func _on_body_entered(body):
hit.emit()El código antiguo puede usar emit_signal("hit"). Hace lo mismo.
Los pinchos solo informan de que alguien recibió un golpe. Lo que hace el 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 tengan una.
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 receptores como este. En esta lección solo editarás los pinchos.
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().
Pulsa «Jugar» y camina sobre los pinchos: la consola muestra Ouch! y te vuelves de color coral. Después, pulsa «Comprobar».
Pruébalo tú mismo
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
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