Własny sygnał
Część sekcji Sygnały i kolizje ścieżki Godot w Coddy. Lekcja 7 z 27.
Możesz przypisać węzłowi własne sygnały. Zadeklaruj jeden na początku skryptu za pomocą signal:
extends Area2D
signal hitWyemituj go za pomocą emit(), gdy coś się wydarzy:
func _on_body_entered(body):
hit.emit()Starszy kod może używać emit_signal("hit"). Działa tak samo.
Kolce tylko zgłaszają, że ktoś został trafiony. To, co powoduje trafienie, zależy od kodu, który nasłuchuje. Tutaj skrypt w węźle Main nasłuchuje sygnału hit:
extends Node2D
# Main nasłuchuje sygnału hit kolców, gdy tylko kolce będą go mieć.
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)Wkrótce napiszesz podobne funkcje nasłuchujące. W tej lekcji edytujesz tylko kolce.
Wyzwanie
ŁatwyDodaj kolcom sygnał i wysyłaj go, gdy ktoś na nie nadepnie.
- Zadeklaruj
signal hitna początku plikuspikes.gd. - W
_on_body_enteredwyślij go za pomocąhit.emit().
Naciśnij „Graj” i wejdź na kolce: w konsoli pojawi się Ouch!, a ty zmienisz kolor na koralowy. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Wszystkie lekcje w sekcji Sygnały i kolizje
Poćwicz samodzielnie: Edytor online Godot