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:

  1. 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 na false, Timer resetuje się po każdym odliczeniu i uruchamia ponownie.
  1. Czas trwania: Ustawia się czas trwania odliczania (w sekundach) za pomocą właściwości wait_time.
  2. 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ę.
  3. 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:

  1. 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łącz autostart, jeśli chcesz, aby Timer uruchomił się automatycznie.
  1. 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.

  1. Cykliczne odliczanie:
    Jeśli chcesz, aby Timer działał cyklicznie, ustaw właściwość one_shot na false:
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.


Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *