Timer w Godot to specjalny węzeł używany do zarządzania czasem w grze. Może odmierzać czas i wywoływać sygnały po zakończeniu odliczania. Umożliwia tworzenie akcji opóźnionych, cyklicznych oraz jednorazowych zdarzeń, co jest bardzo przydatne w wielu sytuacjach, takich jak zarządzanie animacjami, efektami czasowymi lub logiką gry.

Główne cechy i właściwości Timer:
- Jednorazowy lub cykliczny: Timer może być ustawiony na jednorazowe odliczanie lub może działać w pętli.
- one_shot: Jeśli jest ustawiony na
true
, Timer wywołuje sygnał tylko raz i się wyłącza. Jeśli nafalse
, Timer resetuje się po każdym odliczeniu i uruchamia ponownie.
- Czas trwania: Ustawia się czas trwania odliczania (w sekundach) za pomocą właściwości wait_time.
- Sygnał
timeout
: Po zakończeniu odliczania Timer wysyła sygnał timeout, który można podłączyć do dowolnej funkcji, aby wywołać określoną akcję. - Automatyczne uruchamianie: Timer może być automatycznie uruchamiany, gdy scena jest ładowana, za pomocą właściwości autostart.
Przykład użycia Timer w Godot 4:
- Tworzenie Timera w edytorze:
- Dodaj węzeł typu
Timer
do sceny. - Ustaw jego właściwości, takie jak
wait_time
,one_shot
, lub włączautostart
, jeśli chcesz, aby Timer uruchomił się automatycznie.
- Kod w GDScript:
- Możesz ręcznie uruchomić Timer lub zareagować na jego zakończenie:
extends Node2D
# Dodanie timera do sceny
@onready var my_timer = $Timer
func _ready():
# Ustawienie czasu odliczania na 3 sekundy
my_timer.wait_time = 3.0
# Timer uruchomi się automatycznie po załadowaniu sceny
my_timer.start()
func _on_Timer_timeout():
# Wywoływana funkcja po zakończeniu odliczania
print("Timer zakończył odliczanie!")
W powyższym przykładzie Timer został ustawiony na 3 sekundy, po czym wywołuje funkcję _on_Timer_timeout
, która wykonuje akcję po zakończeniu odliczania.
- Cykliczne odliczanie:
Jeśli chcesz, aby Timer działał cyklicznie, ustaw właściwośćone_shot
nafalse
:
my_timer.one_shot = false
my_timer.start()
Timer będzie uruchamiał się ponownie po każdym odliczeniu, aż zostanie zatrzymany ręcznie za pomocą my_timer.stop()
.
Praktyczne zastosowania Timer:
- Efekty czasowe: Tworzenie animacji lub wywoływanie zdarzeń w określonych odstępach czasu.
- Czas gry: Zarządzanie upływem czasu w grze, np. odliczanie do końca poziomu.
- Zarządzanie AI: Zmiana zachowania przeciwników po upływie określonego czasu.
- Tworzenie cyklicznych wydarzeń: Wykonywanie czynności w regularnych odstępach, takich jak generowanie przeciwników co 10 sekund.
Timer to wszechstronny węzeł, który daje kontrolę nad działaniem opartym na czasie w każdej grze.
Dodaj komentarz