Sygnały z wartościami
Część sekcji Sygnały i kolizje ścieżki Godot w Coddy. Lekcja 8 z 27.
Sygnał może przenosić wartości, tak jak body_entered przenosi ciało. Wymień je w nawiasach podczas deklarowania sygnału:
signal collected(points)Przekaż wartości do emit() w tej samej kolejności:
collected.emit(points)Każda funkcja połączona z collected otrzymuje tę wartość. Tutaj skrypt w Main dodaje punkty do wyniku i wyświetla go:
func _on_gem_collected(points):
score += points
print("Score: ", score)Oba klejnoty uruchamiają ten sam skrypt. Wartość points małego klejnotu wynosi 10, a dużego 25. Ustawiono ją dla każdego węzła w Inspektorze. Przekazuj więc points, a nie wpisaną przez siebie liczbę.
Wyzwanie
ŁatwySpraw, aby każdy klejnot informował main.gd, ile punktów jest wart:
- Zadeklaruj
signal collected(points)na początku plikugem.gd. - Na końcu funkcji
_on_body_enteredwyślij sygnał z wartościąpointsklejnotu.
Przejdź po obu klejnotach. Konsola powinna wyświetlić Score: 10, a następnie Score: 35.
Spróbuj swoich sił
extends Area2D
@export var points = 10
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if not visible:
return
visible = false
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Sygnały i kolizje
2Sygnały
Obszary spotykają obszaryWłasny sygnałSygnały z wartościamiSygnał innego węzłaNasłuchuj swojego sygnałuPoćwicz samodzielnie: Edytor online Godot