lunedì 22 settembre 2025

GODOT - Uso dei timer

Mi è capitato di dover inserire un timer nel codice GDScript per gestire degli eventi temporizzati senza utilizzare un singolo elemento aggiunto ai nodi (cosa che potrebbe essere problematica se si devono temporizzare più effetti/azioni).

La definizione/inizializzazione del timer è abbastanza semplice:

self.timer = Timer.new() # creo una nuova variabile di tipo Timer
self.timer.autostart = false # indico che non deve partire in automatico
self.timer.one_shot = true # indico che deve "girare" solo una volta
self.timer.paused = false # indico che il timer non è "in pausa"
A questo punto, è tutto pronto.
Però... per poter partire, il timer dev'essere inserito in un nodo per poter funzionare!
$NodeInTree.add_child(self.timer)
A questo punto, si può collegare il signal "timeout" ad una funzione e poi far partire il timer, indicando il tempo entro cui raggiungere il timeout:
self.timer.timeout.connect(self._on_timeout)
self.timer.start(5)

func _on_timeout() -> void:
    pass

Nessun commento:

Posta un commento