Dein eigenes Signal
Teil des Abschnitts Signale und Kollisionen der Godot-Journey von Coddy. Lektion 7 von 27.
Du kannst einem Knoten eigene Signale geben. Deklariere eines am Anfang des Skripts mit signal:
extends Area2D
signal hitSende es mit emit(), wenn etwas passiert:
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 bei einem Treffer passiert, hängt vom Code ab, der darauf hört. Hier hört das Skript auf Main auf hit:
extends Node2D
# Main lauscht auf das hit-Signal der Stacheln, sobald sie 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 selbst solche Listener 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().
Drücke „Spielen“ und gehe auf die Stacheln: Die Konsole zeigt Ouch! an und du wirst korallfarben. Drücke dann „Prüfen“.
Probier es selbst
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Alle Lektionen in Signale und Kollisionen
Übe selbstständig: Godot-Playground