Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Timer
Un compte à rebours.
Description
Le nœud Timer est un minuteur de compte à rebours et est le moyen le plus simple de gérer la logique basée sur le temps dans le moteur. Quand un minuteur atteint la fin de son temps d'attente wait_time, il émettra le timeoutsignal .
Après qu'un minuteur entre dans l'arborescence de scène, il peut être démarré manuellement avec start(). Un nœud minuteur est également démarré automatiquement si autostart vaut true.
Sans nécessiter beaucoup de code, un nœud minuteur peut être ajouté et configuré dans l'éditeur. Le timeout signal qu'il émet peut également être connecté par le dock Nœud dans l'éditeur :
func _on_timer_timeout():
print("C'est le moment d'attaquer !")
Note : Pour créer un minuteur à usage unique sans instancier un nœud, utilisez SceneTree.create_timer().
Note : Les Timers sont affectés par Engine.time_scale à moins que ignore_time_scale ne vaille true. Plus l'échelle du temps sera élevée, plus les minuteurs se termineront tôt. Combien de fois un minuteur effectue son traitement peut dépendre du framerate ou de Engine.physics_ticks_per_second.
Tutoriels
Propriétés
|
||
|
||
|
||
|
||
|
Méthodes
is_stopped() const |
|
void |
|
void |
stop() |
Signaux
timeout() 🔗
Émis lorsque le minuteur atteint la fin.
Énumérations
enum TimerProcessCallback: 🔗
TimerProcessCallback TIMER_PROCESS_PHYSICS = 0
Mettre à jour le minuteur à chaque trame de traitement de la physique (voir Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS).
TimerProcessCallback TIMER_PROCESS_IDLE = 1
Mettre à jour le minuteur à chaque trame de traitement (de rendu) (voir Node.NOTIFICATION_INTERNAL_PROCESS).
Descriptions des propriétés
Si true, le minuteur démarrera immédiatement lorsqu'il entre dans l'arborescence de scène.
Note : Après que le minuteur entre dans l'arborescence, cette propriété est automatiquement définie à false.
Note : Cette propriété ne fait rien lorsque le minuteur s'exécute dans l'éditeur.
bool ignore_time_scale = false 🔗
Si true, le minuteur ignorera Engine.time_scale et se mettra à jour avec le temps écoulé réel.
Si true, le minuteur s'arrêtera après avoir atteint la fin. Sinon, comme par défaut, le minuteur redémarrera automatiquement.
Si true, le minuteur est mis en pause. Un minuteur en pause ne fait pas de traitement jusqu'à ce que cette propriété soit remise sur false, même lorsque start() est appelée. Voir aussi stop().
TimerProcessCallback process_callback = 1 🔗
void set_timer_process_callback(value: TimerProcessCallback)
TimerProcessCallback get_timer_process_callback()
Spécifie quand le minuteur est mis à jour durant la boucle principale.
float get_time_left()
Le temps restant du minuteur en secondes. Il vaut toujours 0 si le minuteur est arrêté.
Note : Cette propriété est en lecture seule et ne peut être modifiée. Elle est basée sur wait_time.
Le temps nécessaire pour que le minuteur se termine, en secondes. Cette propriété peut également être définie à chaque fois que start() est appelée.
Note : Les minuteurs ne peuvent traiter qu'une fois par trame physique ou de traitement (selon process_callback). Un framerate instable peut entraîner une fin inconsistante du minuteur, ce qui est particulièrement visible si le temps d'attente est inférieur à environ 0.05 secondes. Pour les minuteurs très courts, il est recommandé d'écrire votre propre code au lieu d'utiliser un nœud Timer. Les minuteurs sont également affectés par Engine.time_scale.
Descriptions des méthodes
Renvoie true si le minuteur est arrêté ou n'a pas commencé.
void start(time_sec: float = -1) 🔗
Démarre le minuteur, ou réinitialise le minuteur s'il a déjà commencé. Échoue si le minuteur n'est pas à l'intérieur de l'arborescence de scène. Si time_sec est supérieur à 0, cette valeur est utilisée pour le temps d'attente wait_time.
Note : Cette méthode ne reprend pas un minuteur en pause. Voir paused.
void stop() 🔗
Arrête le minuteur. Voir aussi paused. Contrairement à start(), cela peut être appelé en toute sécurité si le minuteur n'est pas à l'intérieur de l'arborescence de scène.
Note : Appeler stop() n'émet pas le signal timeout, car le minuteur n'est pas considéré comme étant fini. Si cela est souhaité, utilisez $Timer.timeout.emit() après avoir appelé stop() pour émettre manuellement le signal.