class_sprite.rst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/Sprite.xml.
  6. .. _class_Sprite:
  7. Sprite
  8. ======
  9. **Inherits:** :ref:`Node2D<class_Node2D>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. General-purpose sprite node.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. A node that displays a 2D texture. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.
  15. .. rst-class:: classref-introduction-group
  16. Tutorials
  17. ---------
  18. - `Instancing Demo <https://godotengine.org/asset-library/asset/148>`__
  19. .. rst-class:: classref-reftable-group
  20. Properties
  21. ----------
  22. .. table::
  23. :widths: auto
  24. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  25. | :ref:`bool<class_bool>` | :ref:`centered<class_Sprite_property_centered>` | ``true`` |
  26. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  27. | :ref:`bool<class_bool>` | :ref:`flip_h<class_Sprite_property_flip_h>` | ``false`` |
  28. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  29. | :ref:`bool<class_bool>` | :ref:`flip_v<class_Sprite_property_flip_v>` | ``false`` |
  30. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  31. | :ref:`int<class_int>` | :ref:`frame<class_Sprite_property_frame>` | ``0`` |
  32. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  33. | :ref:`Vector2<class_Vector2>` | :ref:`frame_coords<class_Sprite_property_frame_coords>` | ``Vector2( 0, 0 )`` |
  34. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  35. | :ref:`int<class_int>` | :ref:`hframes<class_Sprite_property_hframes>` | ``1`` |
  36. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  37. | :ref:`Texture<class_Texture>` | :ref:`normal_map<class_Sprite_property_normal_map>` | |
  38. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  39. | :ref:`Vector2<class_Vector2>` | :ref:`offset<class_Sprite_property_offset>` | ``Vector2( 0, 0 )`` |
  40. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  41. | :ref:`bool<class_bool>` | :ref:`region_enabled<class_Sprite_property_region_enabled>` | ``false`` |
  42. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  43. | :ref:`bool<class_bool>` | :ref:`region_filter_clip<class_Sprite_property_region_filter_clip>` | ``false`` |
  44. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  45. | :ref:`Rect2<class_Rect2>` | :ref:`region_rect<class_Sprite_property_region_rect>` | ``Rect2( 0, 0, 0, 0 )`` |
  46. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  47. | :ref:`Texture<class_Texture>` | :ref:`texture<class_Sprite_property_texture>` | |
  48. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  49. | :ref:`int<class_int>` | :ref:`vframes<class_Sprite_property_vframes>` | ``1`` |
  50. +-------------------------------+---------------------------------------------------------------------+-------------------------+
  51. .. rst-class:: classref-reftable-group
  52. Methods
  53. -------
  54. .. table::
  55. :widths: auto
  56. +---------------------------+-------------------------------------------------------------------------------------------------------------------+
  57. | :ref:`Rect2<class_Rect2>` | :ref:`get_rect<class_Sprite_method_get_rect>` **(** **)** |const| |
  58. +---------------------------+-------------------------------------------------------------------------------------------------------------------+
  59. | :ref:`bool<class_bool>` | :ref:`is_pixel_opaque<class_Sprite_method_is_pixel_opaque>` **(** :ref:`Vector2<class_Vector2>` pos **)** |const| |
  60. +---------------------------+-------------------------------------------------------------------------------------------------------------------+
  61. .. rst-class:: classref-section-separator
  62. ----
  63. .. rst-class:: classref-descriptions-group
  64. Signals
  65. -------
  66. .. _class_Sprite_signal_frame_changed:
  67. .. rst-class:: classref-signal
  68. **frame_changed** **(** **)**
  69. Emitted when the :ref:`frame<class_Sprite_property_frame>` changes.
  70. .. rst-class:: classref-item-separator
  71. ----
  72. .. _class_Sprite_signal_texture_changed:
  73. .. rst-class:: classref-signal
  74. **texture_changed** **(** **)**
  75. Emitted when the :ref:`texture<class_Sprite_property_texture>` changes.
  76. .. rst-class:: classref-section-separator
  77. ----
  78. .. rst-class:: classref-descriptions-group
  79. Property Descriptions
  80. ---------------------
  81. .. _class_Sprite_property_centered:
  82. .. rst-class:: classref-property
  83. :ref:`bool<class_bool>` **centered** = ``true``
  84. .. rst-class:: classref-property-setget
  85. - void **set_centered** **(** :ref:`bool<class_bool>` value **)**
  86. - :ref:`bool<class_bool>` **is_centered** **(** **)**
  87. If ``true``, texture is centered.
  88. .. rst-class:: classref-item-separator
  89. ----
  90. .. _class_Sprite_property_flip_h:
  91. .. rst-class:: classref-property
  92. :ref:`bool<class_bool>` **flip_h** = ``false``
  93. .. rst-class:: classref-property-setget
  94. - void **set_flip_h** **(** :ref:`bool<class_bool>` value **)**
  95. - :ref:`bool<class_bool>` **is_flipped_h** **(** **)**
  96. If ``true``, texture is flipped horizontally.
  97. .. rst-class:: classref-item-separator
  98. ----
  99. .. _class_Sprite_property_flip_v:
  100. .. rst-class:: classref-property
  101. :ref:`bool<class_bool>` **flip_v** = ``false``
  102. .. rst-class:: classref-property-setget
  103. - void **set_flip_v** **(** :ref:`bool<class_bool>` value **)**
  104. - :ref:`bool<class_bool>` **is_flipped_v** **(** **)**
  105. If ``true``, texture is flipped vertically.
  106. .. rst-class:: classref-item-separator
  107. ----
  108. .. _class_Sprite_property_frame:
  109. .. rst-class:: classref-property
  110. :ref:`int<class_int>` **frame** = ``0``
  111. .. rst-class:: classref-property-setget
  112. - void **set_frame** **(** :ref:`int<class_int>` value **)**
  113. - :ref:`int<class_int>` **get_frame** **(** **)**
  114. Current frame to display from sprite sheet. :ref:`hframes<class_Sprite_property_hframes>` or :ref:`vframes<class_Sprite_property_vframes>` must be greater than 1.
  115. .. rst-class:: classref-item-separator
  116. ----
  117. .. _class_Sprite_property_frame_coords:
  118. .. rst-class:: classref-property
  119. :ref:`Vector2<class_Vector2>` **frame_coords** = ``Vector2( 0, 0 )``
  120. .. rst-class:: classref-property-setget
  121. - void **set_frame_coords** **(** :ref:`Vector2<class_Vector2>` value **)**
  122. - :ref:`Vector2<class_Vector2>` **get_frame_coords** **(** **)**
  123. Coordinates of the frame to display from sprite sheet. This is as an alias for the :ref:`frame<class_Sprite_property_frame>` property. :ref:`hframes<class_Sprite_property_hframes>` or :ref:`vframes<class_Sprite_property_vframes>` must be greater than 1.
  124. .. rst-class:: classref-item-separator
  125. ----
  126. .. _class_Sprite_property_hframes:
  127. .. rst-class:: classref-property
  128. :ref:`int<class_int>` **hframes** = ``1``
  129. .. rst-class:: classref-property-setget
  130. - void **set_hframes** **(** :ref:`int<class_int>` value **)**
  131. - :ref:`int<class_int>` **get_hframes** **(** **)**
  132. The number of columns in the sprite sheet.
  133. .. rst-class:: classref-item-separator
  134. ----
  135. .. _class_Sprite_property_normal_map:
  136. .. rst-class:: classref-property
  137. :ref:`Texture<class_Texture>` **normal_map**
  138. .. rst-class:: classref-property-setget
  139. - void **set_normal_map** **(** :ref:`Texture<class_Texture>` value **)**
  140. - :ref:`Texture<class_Texture>` **get_normal_map** **(** **)**
  141. The normal map gives depth to the Sprite.
  142. \ **Note:** Godot expects the normal map to use X+, Y-, and Z+ coordinates. See `this page <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates>`__ for a comparison of normal map coordinates expected by popular engines.
  143. .. rst-class:: classref-item-separator
  144. ----
  145. .. _class_Sprite_property_offset:
  146. .. rst-class:: classref-property
  147. :ref:`Vector2<class_Vector2>` **offset** = ``Vector2( 0, 0 )``
  148. .. rst-class:: classref-property-setget
  149. - void **set_offset** **(** :ref:`Vector2<class_Vector2>` value **)**
  150. - :ref:`Vector2<class_Vector2>` **get_offset** **(** **)**
  151. The texture's drawing offset.
  152. .. rst-class:: classref-item-separator
  153. ----
  154. .. _class_Sprite_property_region_enabled:
  155. .. rst-class:: classref-property
  156. :ref:`bool<class_bool>` **region_enabled** = ``false``
  157. .. rst-class:: classref-property-setget
  158. - void **set_region** **(** :ref:`bool<class_bool>` value **)**
  159. - :ref:`bool<class_bool>` **is_region** **(** **)**
  160. If ``true``, texture is cut from a larger atlas texture. See :ref:`region_rect<class_Sprite_property_region_rect>`.
  161. .. rst-class:: classref-item-separator
  162. ----
  163. .. _class_Sprite_property_region_filter_clip:
  164. .. rst-class:: classref-property
  165. :ref:`bool<class_bool>` **region_filter_clip** = ``false``
  166. .. rst-class:: classref-property-setget
  167. - void **set_region_filter_clip** **(** :ref:`bool<class_bool>` value **)**
  168. - :ref:`bool<class_bool>` **is_region_filter_clip_enabled** **(** **)**
  169. If ``true``, the outermost pixels get blurred out.
  170. .. rst-class:: classref-item-separator
  171. ----
  172. .. _class_Sprite_property_region_rect:
  173. .. rst-class:: classref-property
  174. :ref:`Rect2<class_Rect2>` **region_rect** = ``Rect2( 0, 0, 0, 0 )``
  175. .. rst-class:: classref-property-setget
  176. - void **set_region_rect** **(** :ref:`Rect2<class_Rect2>` value **)**
  177. - :ref:`Rect2<class_Rect2>` **get_region_rect** **(** **)**
  178. The region of the atlas texture to display. :ref:`region_enabled<class_Sprite_property_region_enabled>` must be ``true``.
  179. .. rst-class:: classref-item-separator
  180. ----
  181. .. _class_Sprite_property_texture:
  182. .. rst-class:: classref-property
  183. :ref:`Texture<class_Texture>` **texture**
  184. .. rst-class:: classref-property-setget
  185. - void **set_texture** **(** :ref:`Texture<class_Texture>` value **)**
  186. - :ref:`Texture<class_Texture>` **get_texture** **(** **)**
  187. :ref:`Texture<class_Texture>` object to draw.
  188. .. rst-class:: classref-item-separator
  189. ----
  190. .. _class_Sprite_property_vframes:
  191. .. rst-class:: classref-property
  192. :ref:`int<class_int>` **vframes** = ``1``
  193. .. rst-class:: classref-property-setget
  194. - void **set_vframes** **(** :ref:`int<class_int>` value **)**
  195. - :ref:`int<class_int>` **get_vframes** **(** **)**
  196. The number of rows in the sprite sheet.
  197. .. rst-class:: classref-section-separator
  198. ----
  199. .. rst-class:: classref-descriptions-group
  200. Method Descriptions
  201. -------------------
  202. .. _class_Sprite_method_get_rect:
  203. .. rst-class:: classref-method
  204. :ref:`Rect2<class_Rect2>` **get_rect** **(** **)** |const|
  205. Returns a :ref:`Rect2<class_Rect2>` representing the Sprite's boundary in local coordinates. Can be used to detect if the Sprite was clicked. Example:
  206. ::
  207. func _input(event):
  208. if event is InputEventMouseButton and event.pressed and event.button_index == BUTTON_LEFT:
  209. if get_rect().has_point(to_local(event.position)):
  210. print("A click!")
  211. .. rst-class:: classref-item-separator
  212. ----
  213. .. _class_Sprite_method_is_pixel_opaque:
  214. .. rst-class:: classref-method
  215. :ref:`bool<class_bool>` **is_pixel_opaque** **(** :ref:`Vector2<class_Vector2>` pos **)** |const|
  216. Returns ``true``, if the pixel at the given position is opaque and ``false`` in other case.
  217. \ **Note:** It also returns ``false``, if the sprite's texture is ``null`` or if the given position is invalid.
  218. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  219. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  220. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  221. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`