Funkcja set()
w GDScript (języku Godot) jest używana do definiowania tzw. setterów, które są funkcjami przypisywanymi do zmiennych lub właściwości obiektów. Zastosowanie tej funkcji pozwala na automatyczne wykonywanie kodu, kiedy dana właściwość obiektu jest zmieniana, co umożliwia dodanie logiki walidacji, reakcji na zmianę wartości lub dodatkowych operacji.
Definiowanie settera przy użyciu set()
:
Przykład:
var _value: int
func set_value(value):
_value = value
print("Wartość została zmieniona na:", value)
func get_value():
return _value
W tym przykładzie:
set_value()
jest funkcją, która działa jako setter. Wykonuje się, gdy zmieniasz wartość przypisaną do _value
.
- Dodatkowo, można zdefiniować również funkcję getter (np.
get_value()
), która pozwala na kontrolowany dostęp do wartości.
Przypisanie settera:
W Godot możesz powiązać zmienną bezpośrednio z setterem i getterem, używając słowa kluczowego setget
:
var my_value: int setget set_value, get_value
Oznacza to, że kiedy ustawiasz wartość my_value
, funkcja set_value
automatycznie się uruchamia, umożliwiając walidację lub inne działania, np. aktualizację UI.
Przykład praktyczny:
var health: int setget set_health
func set_health(value):
health = clamp(value, 0, 100) # Zapewnia, że zdrowie jest między 0 a 100
print("Aktualne zdrowie:", health)
Tutaj setter set_health
sprawdza, czy wartość zdrowia jest w zakresie od 0 do 100, zanim przypisze nową wartość do zmiennej health
.
Zastosowanie w praktyce:
- Walidacja danych: Sprawdzanie, czy przypisana wartość jest poprawna przed jej zapisaniem.
- Zarządzanie UI: Automatyczna aktualizacja elementów UI w reakcji na zmianę wartości.
- Powiązanie logiki z właściwościami: Wywołanie dodatkowej logiki przy każdej zmianie właściwości, np. odświeżenie innych komponentów w zależności od wartości zmiennej.
Funkcja set()
w GDScript jest bardzo przydatna, jeśli potrzebujesz większej kontroli nad modyfikacją danych, szczególnie w przypadku bardziej złożonych scenariuszy w projektach Godot.
Published using WordPress Blurt Publisher from https://godot.com.pl.