Funkcja get() w GDScript, podobnie jak set(), służy do definiowania tzw. getterów, czyli funkcji, które zwracają wartość danej właściwości lub zmiennej. Pozwala to na kontrolowany dostęp do właściwości obiektu w trakcie jej odczytu. Zastosowanie tej funkcji pozwala na dodanie logiki przy pobieraniu wartości oraz na bardziej elastyczną obsługę zmiennych.

Jak działa get()?
Getter definiuje, co powinno się wydarzyć, kiedy zmienna jest odczytywana, a nie bezpośrednio manipulowana.
Przykład użycia get():
var _value: int = 10
func get_value():
return _value
var my_value: int setget set_value, get_value
W tym przykładzie:
get_value()jest funkcją, która działa jako getter. Kiedy wartośćmy_valuejest odczytywana, automatycznie wywołuje sięget_value(), która zwraca_value.
Zastosowanie w praktyce:
Getter może być połączony z setterem przy użyciu setget, co umożliwia pełną kontrolę nad tym, jak wartość zmiennej jest zarówno ustawiana, jak i pobierana:
var health: int setget set_health, get_health
func set_health(value):
health = clamp(value, 0, 100) # Ustawia wartość zdrowia między 0 a 100
func get_health():
return health
Tutaj getter get_health() zwraca bieżącą wartość zmiennej health, natomiast setter zapewnia, że zdrowie zawsze mieści się w przedziale 0–100.
Zastosowania:
- Ochrona danych: Umożliwia kontrolowany dostęp do danych, szczególnie gdy chcesz uniknąć niepoprawnych wartości.
- Optymalizacja logiki: Wprowadza dodatkową logikę podczas odczytu wartości, np. dynamiczne przeliczanie lub ładowanie danych z innych źródeł.
- Odseparowanie danych: Getter umożliwia odseparowanie danych wewnętrznych obiektu od jego interfejsu zewnętrznego.
Przykład getterów dla dynamicznych wartości:
var score: int = 0
func get_formatted_score():
return "Wynik: " + str(score)
Ten getter formatuje wynik na potrzeby interfejsu użytkownika za każdym razem, gdy jest odczytywany.
Funkcja get() w połączeniu z setget umożliwia wprowadzenie bardziej zaawansowanej logiki podczas pracy z właściwościami, co pozwala na elastyczne zarządzanie stanem obiektów w Godot.





Dodaj komentarz