Dein eigenes Signal
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 7 von 27.
Du kannst einem Node eigene Signale geben. Deklariere eines am Anfang des Skripts mit signal:
extends Area2D
signal hitSende es mit emit(), wenn das Ereignis eintritt:
func _on_body_entered(body):
hit.emit()Älterer Code verwendet möglicherweise emit_signal("hit"). Das bewirkt dasselbe.
Die Stacheln melden nur, dass jemand getroffen wurde. Was ein Treffer bewirkt, hängt vom Code ab, der darauf reagiert. Hier reagiert das Skript auf Main auf hit:
extends Node2D
# Main lauscht auf das hit-Signal der Stacheln, sobald diese eines haben.
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)Du wirst bald Listener wie diesen schreiben. In dieser Lektion bearbeitest du nur die Stacheln.
Aufgabe
EinfachGib den Stacheln ein Signal und sende es, wenn jemand auf sie tritt:
- Deklariere
signal hitam Anfang vonspikes.gd. - Sende es in
_on_body_enteredmithit.emit().
Lauf auf die Stacheln. Die Konsole sollte Ouch! anzeigen und du wirst korallfarben.
Probier es selbst
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Signale und Kollisionen
Übe selbstständig: Godot-Playground