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.

Timer

Hérite de : Node < Object

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

bool

autostart

false

bool

ignore_time_scale

false

bool

one_shot

false

bool

paused

TimerProcessCallback

process_callback

1

float

time_left

float

wait_time

1.0

Méthodes

bool

is_stopped() const

void

start(time_sec: float = -1)

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

bool autostart = false 🔗

  • void set_autostart(value: bool)

  • bool has_autostart()

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 🔗

  • void set_ignore_time_scale(value: bool)

  • bool is_ignoring_time_scale()

Si true, le minuteur ignorera Engine.time_scale et se mettra à jour avec le temps écoulé réel.


bool one_shot = false 🔗

  • void set_one_shot(value: bool)

  • bool is_one_shot()

Si true, le minuteur s'arrêtera après avoir atteint la fin. Sinon, comme par défaut, le minuteur redémarrera automatiquement.


bool paused 🔗

  • void set_paused(value: bool)

  • bool is_paused()

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 🔗

Spécifie quand le minuteur est mis à jour durant la boucle principale.


float 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.


float wait_time = 1.0 🔗

  • void set_wait_time(value: float)

  • float get_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

bool is_stopped() const 🔗

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.