Il tuo segnale
Fa parte della sezione Segnali e collisioni del percorso Godot di Coddy. Lezione 7 di 27.
Puoi assegnare a un nodo i tuoi segnali. Dichiarane uno all'inizio dello script con signal:
extends Area2D
signal hitInvialo con emit() quando si verifica l'evento:
func _on_body_entered(body):
hit.emit()Il codice meno recente può usare emit_signal("hit"). Fa la stessa cosa.
Le punte segnalano solo che qualcuno è stato colpito. Spetta al codice in ascolto decidere cosa comporta un colpo. Qui lo script su Main è in ascolto di hit:
extends Node2D
# Main resta in ascolto del segnale hit degli spuntoni, non appena questi ne hanno uno.
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)Presto scriverai listener come questo. In questa lezione modifichi solo le punte.
Sfida
FacileDai alle punte un segnale e invialo quando qualcuno ci cammina sopra.
- Dichiara
signal hitall'inizio dispikes.gd. - In
_on_body_entered, invialo conhit.emit().
Premi «Gioca» e cammina sulle punte: nella Console appare Ouch! e diventi color corallo. Poi premi «Verifica».
Provalo tu
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Tutte le lezioni di Segnali e collisioni
2Segnali
Le aree si incontranoIl tuo segnaleSegnali con valoriIl segnale di un altro nodoAscolta il tuo segnaleEsercitati da solo: Playground Godot