class_engine.rst 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the Engine.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_Engine:
  5. Engine
  6. ======
  7. **Inherits:** :ref:`Object<class_Object>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. Access to basic engine properties.
  12. Properties
  13. ----------
  14. +---------------------------+---------------------------------------------------------------------------+------+
  15. | :ref:`bool<class_bool>` | :ref:`editor_hint<class_Engine_property_editor_hint>` | true |
  16. +---------------------------+---------------------------------------------------------------------------+------+
  17. | :ref:`int<class_int>` | :ref:`iterations_per_second<class_Engine_property_iterations_per_second>` | 60 |
  18. +---------------------------+---------------------------------------------------------------------------+------+
  19. | :ref:`float<class_float>` | :ref:`physics_jitter_fix<class_Engine_property_physics_jitter_fix>` | 0.5 |
  20. +---------------------------+---------------------------------------------------------------------------+------+
  21. | :ref:`int<class_int>` | :ref:`target_fps<class_Engine_property_target_fps>` | 0 |
  22. +---------------------------+---------------------------------------------------------------------------+------+
  23. | :ref:`float<class_float>` | :ref:`time_scale<class_Engine_property_time_scale>` | 1.0 |
  24. +---------------------------+---------------------------------------------------------------------------+------+
  25. Methods
  26. -------
  27. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`Dictionary<class_Dictionary>` | :ref:`get_author_info<class_Engine_method_get_author_info>` **(** **)** const |
  29. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`Array<class_Array>` | :ref:`get_copyright_info<class_Engine_method_get_copyright_info>` **(** **)** const |
  31. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`Dictionary<class_Dictionary>` | :ref:`get_donor_info<class_Engine_method_get_donor_info>` **(** **)** const |
  33. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`int<class_int>` | :ref:`get_frames_drawn<class_Engine_method_get_frames_drawn>` **(** **)** |
  35. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  36. | :ref:`float<class_float>` | :ref:`get_frames_per_second<class_Engine_method_get_frames_per_second>` **(** **)** const |
  37. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`Dictionary<class_Dictionary>` | :ref:`get_license_info<class_Engine_method_get_license_info>` **(** **)** const |
  39. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`String<class_String>` | :ref:`get_license_text<class_Engine_method_get_license_text>` **(** **)** const |
  41. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`MainLoop<class_MainLoop>` | :ref:`get_main_loop<class_Engine_method_get_main_loop>` **(** **)** const |
  43. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`float<class_float>` | :ref:`get_physics_interpolation_fraction<class_Engine_method_get_physics_interpolation_fraction>` **(** **)** const |
  45. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`Object<class_Object>` | :ref:`get_singleton<class_Engine_method_get_singleton>` **(** :ref:`String<class_String>` name **)** const |
  47. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`Dictionary<class_Dictionary>` | :ref:`get_version_info<class_Engine_method_get_version_info>` **(** **)** const |
  49. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`bool<class_bool>` | :ref:`has_singleton<class_Engine_method_has_singleton>` **(** :ref:`String<class_String>` name **)** const |
  51. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`bool<class_bool>` | :ref:`is_in_physics_frame<class_Engine_method_is_in_physics_frame>` **(** **)** const |
  53. +-------------------------------------+---------------------------------------------------------------------------------------------------------------------+
  54. Description
  55. -----------
  56. The ``Engine`` class allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others.
  57. Property Descriptions
  58. ---------------------
  59. .. _class_Engine_property_editor_hint:
  60. - :ref:`bool<class_bool>` **editor_hint**
  61. +-----------+------------------------+
  62. | *Default* | true |
  63. +-----------+------------------------+
  64. | *Setter* | set_editor_hint(value) |
  65. +-----------+------------------------+
  66. | *Getter* | is_editor_hint() |
  67. +-----------+------------------------+
  68. If ``true``, it is running inside the editor. Useful for tool scripts.
  69. .. _class_Engine_property_iterations_per_second:
  70. - :ref:`int<class_int>` **iterations_per_second**
  71. +-----------+----------------------------------+
  72. | *Default* | 60 |
  73. +-----------+----------------------------------+
  74. | *Setter* | set_iterations_per_second(value) |
  75. +-----------+----------------------------------+
  76. | *Getter* | get_iterations_per_second() |
  77. +-----------+----------------------------------+
  78. The number of fixed iterations per second (for fixed process and physics).
  79. .. _class_Engine_property_physics_jitter_fix:
  80. - :ref:`float<class_float>` **physics_jitter_fix**
  81. +-----------+-------------------------------+
  82. | *Default* | 0.5 |
  83. +-----------+-------------------------------+
  84. | *Setter* | set_physics_jitter_fix(value) |
  85. +-----------+-------------------------------+
  86. | *Getter* | get_physics_jitter_fix() |
  87. +-----------+-------------------------------+
  88. .. _class_Engine_property_target_fps:
  89. - :ref:`int<class_int>` **target_fps**
  90. +-----------+-----------------------+
  91. | *Default* | 0 |
  92. +-----------+-----------------------+
  93. | *Setter* | set_target_fps(value) |
  94. +-----------+-----------------------+
  95. | *Getter* | get_target_fps() |
  96. +-----------+-----------------------+
  97. The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit.
  98. .. _class_Engine_property_time_scale:
  99. - :ref:`float<class_float>` **time_scale**
  100. +-----------+-----------------------+
  101. | *Default* | 1.0 |
  102. +-----------+-----------------------+
  103. | *Setter* | set_time_scale(value) |
  104. +-----------+-----------------------+
  105. | *Getter* | get_time_scale() |
  106. +-----------+-----------------------+
  107. Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed.
  108. Method Descriptions
  109. -------------------
  110. .. _class_Engine_method_get_author_info:
  111. - :ref:`Dictionary<class_Dictionary>` **get_author_info** **(** **)** const
  112. Returns engine author information in a Dictionary.
  113. ``lead_developers`` - Array of Strings, lead developer names
  114. ``founders`` - Array of Strings, founder names
  115. ``project_managers`` - Array of Strings, project manager names
  116. ``developers`` - Array of Strings, developer names
  117. .. _class_Engine_method_get_copyright_info:
  118. - :ref:`Array<class_Array>` **get_copyright_info** **(** **)** const
  119. Returns an Array of copyright information Dictionaries.
  120. ``name`` - String, component name
  121. ``parts`` - Array of Dictionaries {``files``, ``copyright``, ``license``} describing subsections of the component
  122. .. _class_Engine_method_get_donor_info:
  123. - :ref:`Dictionary<class_Dictionary>` **get_donor_info** **(** **)** const
  124. Returns a Dictionary of Arrays of donor names.
  125. {``platinum_sponsors``, ``gold_sponsors``, ``mini_sponsors``, ``gold_donors``, ``silver_donors``, ``bronze_donors``}
  126. .. _class_Engine_method_get_frames_drawn:
  127. - :ref:`int<class_int>` **get_frames_drawn** **(** **)**
  128. Returns the total number of frames drawn.
  129. .. _class_Engine_method_get_frames_per_second:
  130. - :ref:`float<class_float>` **get_frames_per_second** **(** **)** const
  131. Returns the frames per second of the running game.
  132. .. _class_Engine_method_get_license_info:
  133. - :ref:`Dictionary<class_Dictionary>` **get_license_info** **(** **)** const
  134. Returns Dictionary of licenses used by Godot and included third party components.
  135. .. _class_Engine_method_get_license_text:
  136. - :ref:`String<class_String>` **get_license_text** **(** **)** const
  137. Returns Godot license text.
  138. .. _class_Engine_method_get_main_loop:
  139. - :ref:`MainLoop<class_MainLoop>` **get_main_loop** **(** **)** const
  140. Returns the main loop object (see :ref:`MainLoop<class_MainLoop>` and :ref:`SceneTree<class_SceneTree>`).
  141. .. _class_Engine_method_get_physics_interpolation_fraction:
  142. - :ref:`float<class_float>` **get_physics_interpolation_fraction** **(** **)** const
  143. Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation.
  144. .. _class_Engine_method_get_singleton:
  145. - :ref:`Object<class_Object>` **get_singleton** **(** :ref:`String<class_String>` name **)** const
  146. .. _class_Engine_method_get_version_info:
  147. - :ref:`Dictionary<class_Dictionary>` **get_version_info** **(** **)** const
  148. Returns the current engine version information in a Dictionary.
  149. ``major`` - Holds the major version number as an int
  150. ``minor`` - Holds the minor version number as an int
  151. ``patch`` - Holds the patch version number as an int
  152. ``hex`` - Holds the full version number encoded as a hexadecimal int with one byte (2 places) per number (see example below)
  153. ``status`` - Holds the status (e.g. "beta", "rc1", "rc2", ... "stable") as a String
  154. ``build`` - Holds the build name (e.g. "custom_build") as a String
  155. ``hash`` - Holds the full Git commit hash as a String
  156. ``year`` - Holds the year the version was released in as an int
  157. ``string`` - ``major`` + ``minor`` + ``patch`` + ``status`` + ``build`` in a single String
  158. The ``hex`` value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, "3.1.12" would be ``0x03010C``. **Note:** It's still an int internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for easy version comparisons from code:
  159. ::
  160. if Engine.get_version_info().hex >= 0x030200:
  161. # Do things specific to version 3.2 or later
  162. else:
  163. # Do things specific to versions before 3.2
  164. .. _class_Engine_method_has_singleton:
  165. - :ref:`bool<class_bool>` **has_singleton** **(** :ref:`String<class_String>` name **)** const
  166. .. _class_Engine_method_is_in_physics_frame:
  167. - :ref:`bool<class_bool>` **is_in_physics_frame** **(** **)** const
  168. Returns ``true`` if the game is inside the fixed process and physics phase of the game loop.