123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- :github_url: hide
- .. DO NOT EDIT THIS FILE!!!
- .. Generated automatically from Godot engine sources.
- .. Generator: https://github.com/godotengine/godot/tree/4.2/doc/tools/make_rst.py.
- .. XML source: https://github.com/godotengine/godot/tree/4.2/doc/classes/Timer.xml.
- .. _class_Timer:
- Timer
- =====
- **Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
- A countdown timer.
- .. rst-class:: classref-introduction-group
- Description
- -----------
- Counts down a specified interval and emits a signal on reaching 0. Can be set to repeat or "one-shot" mode.
- \ **Note:** Timers are affected by :ref:`Engine.time_scale<class_Engine_property_time_scale>`, a higher scale means quicker timeouts, and vice versa.
- \ **Note:** To create a one-shot timer without instantiating a node, use :ref:`SceneTree.create_timer<class_SceneTree_method_create_timer>`.
- .. rst-class:: classref-introduction-group
- Tutorials
- ---------
- - `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/515>`__
- .. rst-class:: classref-reftable-group
- Properties
- ----------
- .. table::
- :widths: auto
- +--------------------------------------------------------------+----------------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`autostart<class_Timer_property_autostart>` | ``false`` |
- +--------------------------------------------------------------+----------------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`one_shot<class_Timer_property_one_shot>` | ``false`` |
- +--------------------------------------------------------------+----------------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`paused<class_Timer_property_paused>` | |
- +--------------------------------------------------------------+----------------------------------------------------------------+-----------+
- | :ref:`TimerProcessCallback<enum_Timer_TimerProcessCallback>` | :ref:`process_callback<class_Timer_property_process_callback>` | ``1`` |
- +--------------------------------------------------------------+----------------------------------------------------------------+-----------+
- | :ref:`float<class_float>` | :ref:`time_left<class_Timer_property_time_left>` | |
- +--------------------------------------------------------------+----------------------------------------------------------------+-----------+
- | :ref:`float<class_float>` | :ref:`wait_time<class_Timer_property_wait_time>` | ``1.0`` |
- +--------------------------------------------------------------+----------------------------------------------------------------+-----------+
- .. rst-class:: classref-reftable-group
- Methods
- -------
- .. table::
- :widths: auto
- +-------------------------+------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`is_stopped<class_Timer_method_is_stopped>` **(** **)** |const| |
- +-------------------------+------------------------------------------------------------------------------------------+
- | void | :ref:`start<class_Timer_method_start>` **(** :ref:`float<class_float>` time_sec=-1 **)** |
- +-------------------------+------------------------------------------------------------------------------------------+
- | void | :ref:`stop<class_Timer_method_stop>` **(** **)** |
- +-------------------------+------------------------------------------------------------------------------------------+
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Signals
- -------
- .. _class_Timer_signal_timeout:
- .. rst-class:: classref-signal
- **timeout** **(** **)**
- Emitted when the timer reaches 0.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Enumerations
- ------------
- .. _enum_Timer_TimerProcessCallback:
- .. rst-class:: classref-enumeration
- enum **TimerProcessCallback**:
- .. _class_Timer_constant_TIMER_PROCESS_PHYSICS:
- .. rst-class:: classref-enumeration-constant
- :ref:`TimerProcessCallback<enum_Timer_TimerProcessCallback>` **TIMER_PROCESS_PHYSICS** = ``0``
- Update the timer during physics frames (see :ref:`Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS<class_Node_constant_NOTIFICATION_INTERNAL_PHYSICS_PROCESS>`).
- .. _class_Timer_constant_TIMER_PROCESS_IDLE:
- .. rst-class:: classref-enumeration-constant
- :ref:`TimerProcessCallback<enum_Timer_TimerProcessCallback>` **TIMER_PROCESS_IDLE** = ``1``
- Update the timer during process frames (see :ref:`Node.NOTIFICATION_INTERNAL_PROCESS<class_Node_constant_NOTIFICATION_INTERNAL_PROCESS>`).
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Property Descriptions
- ---------------------
- .. _class_Timer_property_autostart:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **autostart** = ``false``
- .. rst-class:: classref-property-setget
- - void **set_autostart** **(** :ref:`bool<class_bool>` value **)**
- - :ref:`bool<class_bool>` **has_autostart** **(** **)**
- If ``true``, the timer will automatically start when entering the scene tree.
- \ **Note:** This property is automatically set to ``false`` after the timer enters the scene tree and starts.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Timer_property_one_shot:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **one_shot** = ``false``
- .. rst-class:: classref-property-setget
- - void **set_one_shot** **(** :ref:`bool<class_bool>` value **)**
- - :ref:`bool<class_bool>` **is_one_shot** **(** **)**
- If ``true``, the timer will stop when reaching 0. If ``false``, it will restart.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Timer_property_paused:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **paused**
- .. rst-class:: classref-property-setget
- - void **set_paused** **(** :ref:`bool<class_bool>` value **)**
- - :ref:`bool<class_bool>` **is_paused** **(** **)**
- If ``true``, the timer is paused and will not process until it is unpaused again, even if :ref:`start<class_Timer_method_start>` is called.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Timer_property_process_callback:
- .. rst-class:: classref-property
- :ref:`TimerProcessCallback<enum_Timer_TimerProcessCallback>` **process_callback** = ``1``
- .. rst-class:: classref-property-setget
- - void **set_timer_process_callback** **(** :ref:`TimerProcessCallback<enum_Timer_TimerProcessCallback>` value **)**
- - :ref:`TimerProcessCallback<enum_Timer_TimerProcessCallback>` **get_timer_process_callback** **(** **)**
- Processing callback. See :ref:`TimerProcessCallback<enum_Timer_TimerProcessCallback>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Timer_property_time_left:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **time_left**
- .. rst-class:: classref-property-setget
- - :ref:`float<class_float>` **get_time_left** **(** **)**
- The timer's remaining time in seconds. Returns 0 if the timer is inactive.
- \ **Note:** This value is read-only and cannot be set. It is based on :ref:`wait_time<class_Timer_property_wait_time>`, which can be set using :ref:`start<class_Timer_method_start>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Timer_property_wait_time:
- .. rst-class:: classref-property
- :ref:`float<class_float>` **wait_time** = ``1.0``
- .. rst-class:: classref-property-setget
- - void **set_wait_time** **(** :ref:`float<class_float>` value **)**
- - :ref:`float<class_float>` **get_wait_time** **(** **)**
- The wait time in seconds.
- \ **Note:** Timers can only emit once per rendered frame at most (or once per physics frame if :ref:`process_callback<class_Timer_property_process_callback>` is :ref:`TIMER_PROCESS_PHYSICS<class_Timer_constant_TIMER_PROCESS_PHYSICS>`). This means very low wait times (lower than 0.05 seconds) will behave in significantly different ways depending on the rendered framerate. For very low wait times, it is recommended to use a process loop in a script instead of using a Timer node. Timers are affected by :ref:`Engine.time_scale<class_Engine_property_time_scale>`, a higher scale means quicker timeouts, and vice versa.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Method Descriptions
- -------------------
- .. _class_Timer_method_is_stopped:
- .. rst-class:: classref-method
- :ref:`bool<class_bool>` **is_stopped** **(** **)** |const|
- Returns ``true`` if the timer is stopped.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Timer_method_start:
- .. rst-class:: classref-method
- void **start** **(** :ref:`float<class_float>` time_sec=-1 **)**
- Starts the timer. Sets :ref:`wait_time<class_Timer_property_wait_time>` to ``time_sec`` if ``time_sec > 0``. This also resets the remaining time to :ref:`wait_time<class_Timer_property_wait_time>`.
- \ **Note:** This method will not resume a paused timer. See :ref:`paused<class_Timer_property_paused>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Timer_method_stop:
- .. rst-class:: classref-method
- void **stop** **(** **)**
- Stops the timer.
- .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
- .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
- .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
- .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
- .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
- .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
- .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
|