class_area2d.rst 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  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/4.0/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/4.0/doc/classes/Area2D.xml.
  6. .. _class_Area2D:
  7. Area2D
  8. ======
  9. **Inherits:** :ref:`CollisionObject2D<class_CollisionObject2D>` **<** :ref:`Node2D<class_Node2D>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. 2D area for detection, as well as physics and audio influence.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. 2D area that detects :ref:`CollisionObject2D<class_CollisionObject2D>` nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping) and route audio to custom audio buses.
  15. To give the area its shape, add a :ref:`CollisionShape2D<class_CollisionShape2D>` or a :ref:`CollisionPolygon2D<class_CollisionPolygon2D>` node as a *direct* child (or add multiple such nodes as direct children) of the area.
  16. \ **Warning:** See :ref:`ConcavePolygonShape2D<class_ConcavePolygonShape2D>` for a warning about possibly unexpected behavior when using that shape for an area.
  17. .. rst-class:: classref-introduction-group
  18. Tutorials
  19. ---------
  20. - :doc:`Using Area2D <../tutorials/physics/using_area_2d>`
  21. - `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/515>`__
  22. - `2D Pong Demo <https://godotengine.org/asset-library/asset/121>`__
  23. - `2D Platformer Demo <https://godotengine.org/asset-library/asset/120>`__
  24. .. rst-class:: classref-reftable-group
  25. Properties
  26. ----------
  27. .. table::
  28. :widths: auto
  29. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  30. | :ref:`float<class_float>` | :ref:`angular_damp<class_Area2D_property_angular_damp>` | ``1.0`` |
  31. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  32. | :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`angular_damp_space_override<class_Area2D_property_angular_damp_space_override>` | ``0`` |
  33. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  34. | :ref:`StringName<class_StringName>` | :ref:`audio_bus_name<class_Area2D_property_audio_bus_name>` | ``&"Master"`` |
  35. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  36. | :ref:`bool<class_bool>` | :ref:`audio_bus_override<class_Area2D_property_audio_bus_override>` | ``false`` |
  37. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  38. | :ref:`float<class_float>` | :ref:`gravity<class_Area2D_property_gravity>` | ``980.0`` |
  39. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  40. | :ref:`Vector2<class_Vector2>` | :ref:`gravity_direction<class_Area2D_property_gravity_direction>` | ``Vector2(0, 1)`` |
  41. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  42. | :ref:`bool<class_bool>` | :ref:`gravity_point<class_Area2D_property_gravity_point>` | ``false`` |
  43. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  44. | :ref:`Vector2<class_Vector2>` | :ref:`gravity_point_center<class_Area2D_property_gravity_point_center>` | ``Vector2(0, 1)`` |
  45. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  46. | :ref:`float<class_float>` | :ref:`gravity_point_unit_distance<class_Area2D_property_gravity_point_unit_distance>` | ``0.0`` |
  47. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  48. | :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`gravity_space_override<class_Area2D_property_gravity_space_override>` | ``0`` |
  49. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  50. | :ref:`float<class_float>` | :ref:`linear_damp<class_Area2D_property_linear_damp>` | ``0.1`` |
  51. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  52. | :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` | :ref:`linear_damp_space_override<class_Area2D_property_linear_damp_space_override>` | ``0`` |
  53. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  54. | :ref:`bool<class_bool>` | :ref:`monitorable<class_Area2D_property_monitorable>` | ``true`` |
  55. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  56. | :ref:`bool<class_bool>` | :ref:`monitoring<class_Area2D_property_monitoring>` | ``true`` |
  57. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  58. | :ref:`float<class_float>` | :ref:`priority<class_Area2D_property_priority>` | ``0.0`` |
  59. +-------------------------------------------------+---------------------------------------------------------------------------------------+-------------------+
  60. .. rst-class:: classref-reftable-group
  61. Methods
  62. -------
  63. .. table::
  64. :widths: auto
  65. +-------------------------------+----------------------------------------------------------------------------------------------------------+
  66. | :ref:`Area2D[]<class_Area2D>` | :ref:`get_overlapping_areas<class_Area2D_method_get_overlapping_areas>` **(** **)** |const| |
  67. +-------------------------------+----------------------------------------------------------------------------------------------------------+
  68. | :ref:`Node2D[]<class_Node2D>` | :ref:`get_overlapping_bodies<class_Area2D_method_get_overlapping_bodies>` **(** **)** |const| |
  69. +-------------------------------+----------------------------------------------------------------------------------------------------------+
  70. | :ref:`bool<class_bool>` | :ref:`has_overlapping_areas<class_Area2D_method_has_overlapping_areas>` **(** **)** |const| |
  71. +-------------------------------+----------------------------------------------------------------------------------------------------------+
  72. | :ref:`bool<class_bool>` | :ref:`has_overlapping_bodies<class_Area2D_method_has_overlapping_bodies>` **(** **)** |const| |
  73. +-------------------------------+----------------------------------------------------------------------------------------------------------+
  74. | :ref:`bool<class_bool>` | :ref:`overlaps_area<class_Area2D_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
  75. +-------------------------------+----------------------------------------------------------------------------------------------------------+
  76. | :ref:`bool<class_bool>` | :ref:`overlaps_body<class_Area2D_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
  77. +-------------------------------+----------------------------------------------------------------------------------------------------------+
  78. .. rst-class:: classref-section-separator
  79. ----
  80. .. rst-class:: classref-descriptions-group
  81. Signals
  82. -------
  83. .. _class_Area2D_signal_area_entered:
  84. .. rst-class:: classref-signal
  85. **area_entered** **(** :ref:`Area2D<class_Area2D>` area **)**
  86. Emitted when the received ``area`` enters this area. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  87. .. rst-class:: classref-item-separator
  88. ----
  89. .. _class_Area2D_signal_area_exited:
  90. .. rst-class:: classref-signal
  91. **area_exited** **(** :ref:`Area2D<class_Area2D>` area **)**
  92. Emitted when the received ``area`` exits this area. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  93. .. rst-class:: classref-item-separator
  94. ----
  95. .. _class_Area2D_signal_area_shape_entered:
  96. .. rst-class:: classref-signal
  97. **area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area2D<class_Area2D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
  98. Emitted when a :ref:`Shape2D<class_Shape2D>` of the received ``area`` enters a shape of this area. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  99. \ ``local_shape_index`` and ``area_shape_index`` contain indices of the interacting shapes from this area and the other area, respectively. ``area_rid`` contains the :ref:`RID<class_RID>` of the other area. These values can be used with the :ref:`PhysicsServer2D<class_PhysicsServer2D>`.
  100. \ **Example of getting the** :ref:`CollisionShape2D<class_CollisionShape2D>` **node from the shape index:**\
  101. .. tabs::
  102. .. code-tab:: gdscript
  103. var other_shape_owner = area.shape_find_owner(area_shape_index)
  104. var other_shape_node = area.shape_owner_get_owner(other_shape_owner)
  105. var local_shape_owner = shape_find_owner(local_shape_index)
  106. var local_shape_node = shape_owner_get_owner(local_shape_owner)
  107. .. rst-class:: classref-item-separator
  108. ----
  109. .. _class_Area2D_signal_area_shape_exited:
  110. .. rst-class:: classref-signal
  111. **area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area2D<class_Area2D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
  112. Emitted when a :ref:`Shape2D<class_Shape2D>` of the received ``area`` exits a shape of this area. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  113. See also :ref:`area_shape_entered<class_Area2D_signal_area_shape_entered>`.
  114. .. rst-class:: classref-item-separator
  115. ----
  116. .. _class_Area2D_signal_body_entered:
  117. .. rst-class:: classref-signal
  118. **body_entered** **(** :ref:`Node2D<class_Node2D>` body **)**
  119. Emitted when the received ``body`` enters this area. ``body`` can be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>`. :ref:`TileMap<class_TileMap>`\ s are detected if their :ref:`TileSet<class_TileSet>` has collision shapes configured. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  120. .. rst-class:: classref-item-separator
  121. ----
  122. .. _class_Area2D_signal_body_exited:
  123. .. rst-class:: classref-signal
  124. **body_exited** **(** :ref:`Node2D<class_Node2D>` body **)**
  125. Emitted when the received ``body`` exits this area. ``body`` can be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>`. :ref:`TileMap<class_TileMap>`\ s are detected if their :ref:`TileSet<class_TileSet>` has collision shapes configured. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  126. .. rst-class:: classref-item-separator
  127. ----
  128. .. _class_Area2D_signal_body_shape_entered:
  129. .. rst-class:: classref-signal
  130. **body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node2D<class_Node2D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
  131. Emitted when a :ref:`Shape2D<class_Shape2D>` of the received ``body`` enters a shape of this area. ``body`` can be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>`. :ref:`TileMap<class_TileMap>`\ s are detected if their :ref:`TileSet<class_TileSet>` has collision shapes configured. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  132. \ ``local_shape_index`` and ``body_shape_index`` contain indices of the interacting shapes from this area and the interacting body, respectively. ``body_rid`` contains the :ref:`RID<class_RID>` of the body. These values can be used with the :ref:`PhysicsServer2D<class_PhysicsServer2D>`.
  133. \ **Example of getting the** :ref:`CollisionShape2D<class_CollisionShape2D>` **node from the shape index:**\
  134. .. tabs::
  135. .. code-tab:: gdscript
  136. var body_shape_owner = body.shape_find_owner(body_shape_index)
  137. var body_shape_node = body.shape_owner_get_owner(body_shape_owner)
  138. var local_shape_owner = shape_find_owner(local_shape_index)
  139. var local_shape_node = shape_owner_get_owner(local_shape_owner)
  140. .. rst-class:: classref-item-separator
  141. ----
  142. .. _class_Area2D_signal_body_shape_exited:
  143. .. rst-class:: classref-signal
  144. **body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node2D<class_Node2D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
  145. Emitted when a :ref:`Shape2D<class_Shape2D>` of the received ``body`` exits a shape of this area. ``body`` can be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>`. :ref:`TileMap<class_TileMap>`\ s are detected if their :ref:`TileSet<class_TileSet>` has collision shapes configured. Requires :ref:`monitoring<class_Area2D_property_monitoring>` to be set to ``true``.
  146. See also :ref:`body_shape_entered<class_Area2D_signal_body_shape_entered>`.
  147. .. rst-class:: classref-section-separator
  148. ----
  149. .. rst-class:: classref-descriptions-group
  150. Enumerations
  151. ------------
  152. .. _enum_Area2D_SpaceOverride:
  153. .. rst-class:: classref-enumeration
  154. enum **SpaceOverride**:
  155. .. _class_Area2D_constant_SPACE_OVERRIDE_DISABLED:
  156. .. rst-class:: classref-enumeration-constant
  157. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_DISABLED** = ``0``
  158. This area does not affect gravity/damping.
  159. .. _class_Area2D_constant_SPACE_OVERRIDE_COMBINE:
  160. .. rst-class:: classref-enumeration-constant
  161. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE** = ``1``
  162. This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area2D_property_priority>` order).
  163. .. _class_Area2D_constant_SPACE_OVERRIDE_COMBINE_REPLACE:
  164. .. rst-class:: classref-enumeration-constant
  165. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE_REPLACE** = ``2``
  166. This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area2D_property_priority>` order), ignoring any lower priority areas.
  167. .. _class_Area2D_constant_SPACE_OVERRIDE_REPLACE:
  168. .. rst-class:: classref-enumeration-constant
  169. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE** = ``3``
  170. This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
  171. .. _class_Area2D_constant_SPACE_OVERRIDE_REPLACE_COMBINE:
  172. .. rst-class:: classref-enumeration-constant
  173. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE_COMBINE** = ``4``
  174. This area replaces any gravity/damping calculated so far (in :ref:`priority<class_Area2D_property_priority>` order), but keeps calculating the rest of the areas.
  175. .. rst-class:: classref-section-separator
  176. ----
  177. .. rst-class:: classref-descriptions-group
  178. Property Descriptions
  179. ---------------------
  180. .. _class_Area2D_property_angular_damp:
  181. .. rst-class:: classref-property
  182. :ref:`float<class_float>` **angular_damp** = ``1.0``
  183. .. rst-class:: classref-property-setget
  184. - void **set_angular_damp** **(** :ref:`float<class_float>` value **)**
  185. - :ref:`float<class_float>` **get_angular_damp** **(** **)**
  186. The rate at which objects stop spinning in this area. Represents the angular velocity lost per second.
  187. See :ref:`ProjectSettings.physics/2d/default_angular_damp<class_ProjectSettings_property_physics/2d/default_angular_damp>` for more details about damping.
  188. .. rst-class:: classref-item-separator
  189. ----
  190. .. _class_Area2D_property_angular_damp_space_override:
  191. .. rst-class:: classref-property
  192. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **angular_damp_space_override** = ``0``
  193. .. rst-class:: classref-property-setget
  194. - void **set_angular_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` value **)**
  195. - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_angular_damp_space_override_mode** **(** **)**
  196. Override mode for angular damping calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
  197. .. rst-class:: classref-item-separator
  198. ----
  199. .. _class_Area2D_property_audio_bus_name:
  200. .. rst-class:: classref-property
  201. :ref:`StringName<class_StringName>` **audio_bus_name** = ``&"Master"``
  202. .. rst-class:: classref-property-setget
  203. - void **set_audio_bus_name** **(** :ref:`StringName<class_StringName>` value **)**
  204. - :ref:`StringName<class_StringName>` **get_audio_bus_name** **(** **)**
  205. The name of the area's audio bus.
  206. .. rst-class:: classref-item-separator
  207. ----
  208. .. _class_Area2D_property_audio_bus_override:
  209. .. rst-class:: classref-property
  210. :ref:`bool<class_bool>` **audio_bus_override** = ``false``
  211. .. rst-class:: classref-property-setget
  212. - void **set_audio_bus_override** **(** :ref:`bool<class_bool>` value **)**
  213. - :ref:`bool<class_bool>` **is_overriding_audio_bus** **(** **)**
  214. If ``true``, the area's audio bus overrides the default audio bus.
  215. .. rst-class:: classref-item-separator
  216. ----
  217. .. _class_Area2D_property_gravity:
  218. .. rst-class:: classref-property
  219. :ref:`float<class_float>` **gravity** = ``980.0``
  220. .. rst-class:: classref-property-setget
  221. - void **set_gravity** **(** :ref:`float<class_float>` value **)**
  222. - :ref:`float<class_float>` **get_gravity** **(** **)**
  223. The area's gravity intensity (in pixels per second squared). This value multiplies the gravity direction. This is useful to alter the force of gravity without altering its direction.
  224. .. rst-class:: classref-item-separator
  225. ----
  226. .. _class_Area2D_property_gravity_direction:
  227. .. rst-class:: classref-property
  228. :ref:`Vector2<class_Vector2>` **gravity_direction** = ``Vector2(0, 1)``
  229. .. rst-class:: classref-property-setget
  230. - void **set_gravity_direction** **(** :ref:`Vector2<class_Vector2>` value **)**
  231. - :ref:`Vector2<class_Vector2>` **get_gravity_direction** **(** **)**
  232. The area's gravity vector (not normalized).
  233. .. rst-class:: classref-item-separator
  234. ----
  235. .. _class_Area2D_property_gravity_point:
  236. .. rst-class:: classref-property
  237. :ref:`bool<class_bool>` **gravity_point** = ``false``
  238. .. rst-class:: classref-property-setget
  239. - void **set_gravity_is_point** **(** :ref:`bool<class_bool>` value **)**
  240. - :ref:`bool<class_bool>` **is_gravity_a_point** **(** **)**
  241. If ``true``, gravity is calculated from a point (set via :ref:`gravity_point_center<class_Area2D_property_gravity_point_center>`). See also :ref:`gravity_space_override<class_Area2D_property_gravity_space_override>`.
  242. .. rst-class:: classref-item-separator
  243. ----
  244. .. _class_Area2D_property_gravity_point_center:
  245. .. rst-class:: classref-property
  246. :ref:`Vector2<class_Vector2>` **gravity_point_center** = ``Vector2(0, 1)``
  247. .. rst-class:: classref-property-setget
  248. - void **set_gravity_point_center** **(** :ref:`Vector2<class_Vector2>` value **)**
  249. - :ref:`Vector2<class_Vector2>` **get_gravity_point_center** **(** **)**
  250. If gravity is a point (see :ref:`gravity_point<class_Area2D_property_gravity_point>`), this will be the point of attraction.
  251. .. rst-class:: classref-item-separator
  252. ----
  253. .. _class_Area2D_property_gravity_point_unit_distance:
  254. .. rst-class:: classref-property
  255. :ref:`float<class_float>` **gravity_point_unit_distance** = ``0.0``
  256. .. rst-class:: classref-property-setget
  257. - void **set_gravity_point_unit_distance** **(** :ref:`float<class_float>` value **)**
  258. - :ref:`float<class_float>` **get_gravity_point_unit_distance** **(** **)**
  259. The distance at which the gravity strength is equal to :ref:`gravity<class_Area2D_property_gravity>`. For example, on a planet 100 pixels in radius with a surface gravity of 4.0 px/s², set the :ref:`gravity<class_Area2D_property_gravity>` to 4.0 and the unit distance to 100.0. The gravity will have falloff according to the inverse square law, so in the example, at 200 pixels from the center the gravity will be 1.0 px/s² (twice the distance, 1/4th the gravity), at 50 pixels it will be 16.0 px/s² (half the distance, 4x the gravity), and so on.
  260. The above is true only when the unit distance is a positive number. When this is set to 0.0, the gravity will be constant regardless of distance.
  261. .. rst-class:: classref-item-separator
  262. ----
  263. .. _class_Area2D_property_gravity_space_override:
  264. .. rst-class:: classref-property
  265. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **gravity_space_override** = ``0``
  266. .. rst-class:: classref-property-setget
  267. - void **set_gravity_space_override_mode** **(** :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` value **)**
  268. - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_gravity_space_override_mode** **(** **)**
  269. Override mode for gravity calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
  270. .. rst-class:: classref-item-separator
  271. ----
  272. .. _class_Area2D_property_linear_damp:
  273. .. rst-class:: classref-property
  274. :ref:`float<class_float>` **linear_damp** = ``0.1``
  275. .. rst-class:: classref-property-setget
  276. - void **set_linear_damp** **(** :ref:`float<class_float>` value **)**
  277. - :ref:`float<class_float>` **get_linear_damp** **(** **)**
  278. The rate at which objects stop moving in this area. Represents the linear velocity lost per second.
  279. See :ref:`ProjectSettings.physics/2d/default_linear_damp<class_ProjectSettings_property_physics/2d/default_linear_damp>` for more details about damping.
  280. .. rst-class:: classref-item-separator
  281. ----
  282. .. _class_Area2D_property_linear_damp_space_override:
  283. .. rst-class:: classref-property
  284. :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **linear_damp_space_override** = ``0``
  285. .. rst-class:: classref-property-setget
  286. - void **set_linear_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` value **)**
  287. - :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` **get_linear_damp_space_override_mode** **(** **)**
  288. Override mode for linear damping calculations within this area. See :ref:`SpaceOverride<enum_Area2D_SpaceOverride>` for possible values.
  289. .. rst-class:: classref-item-separator
  290. ----
  291. .. _class_Area2D_property_monitorable:
  292. .. rst-class:: classref-property
  293. :ref:`bool<class_bool>` **monitorable** = ``true``
  294. .. rst-class:: classref-property-setget
  295. - void **set_monitorable** **(** :ref:`bool<class_bool>` value **)**
  296. - :ref:`bool<class_bool>` **is_monitorable** **(** **)**
  297. If ``true``, other monitoring areas can detect this area.
  298. .. rst-class:: classref-item-separator
  299. ----
  300. .. _class_Area2D_property_monitoring:
  301. .. rst-class:: classref-property
  302. :ref:`bool<class_bool>` **monitoring** = ``true``
  303. .. rst-class:: classref-property-setget
  304. - void **set_monitoring** **(** :ref:`bool<class_bool>` value **)**
  305. - :ref:`bool<class_bool>` **is_monitoring** **(** **)**
  306. If ``true``, the area detects bodies or areas entering and exiting it.
  307. .. rst-class:: classref-item-separator
  308. ----
  309. .. _class_Area2D_property_priority:
  310. .. rst-class:: classref-property
  311. :ref:`float<class_float>` **priority** = ``0.0``
  312. .. rst-class:: classref-property-setget
  313. - void **set_priority** **(** :ref:`float<class_float>` value **)**
  314. - :ref:`float<class_float>` **get_priority** **(** **)**
  315. The area's priority. Higher priority areas are processed first.
  316. .. rst-class:: classref-section-separator
  317. ----
  318. .. rst-class:: classref-descriptions-group
  319. Method Descriptions
  320. -------------------
  321. .. _class_Area2D_method_get_overlapping_areas:
  322. .. rst-class:: classref-method
  323. :ref:`Area2D[]<class_Area2D>` **get_overlapping_areas** **(** **)** |const|
  324. Returns a list of intersecting **Area2D**\ s. The overlapping area's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
  325. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
  326. .. rst-class:: classref-item-separator
  327. ----
  328. .. _class_Area2D_method_get_overlapping_bodies:
  329. .. rst-class:: classref-method
  330. :ref:`Node2D[]<class_Node2D>` **get_overlapping_bodies** **(** **)** |const|
  331. Returns a list of intersecting :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ s and :ref:`TileMap<class_TileMap>`\ s. The overlapping body's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
  332. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
  333. .. rst-class:: classref-item-separator
  334. ----
  335. .. _class_Area2D_method_has_overlapping_areas:
  336. .. rst-class:: classref-method
  337. :ref:`bool<class_bool>` **has_overlapping_areas** **(** **)** |const|
  338. Returns ``true`` if intersecting any **Area2D**\ s, otherwise returns ``false``. The overlapping area's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
  339. For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
  340. .. rst-class:: classref-item-separator
  341. ----
  342. .. _class_Area2D_method_has_overlapping_bodies:
  343. .. rst-class:: classref-method
  344. :ref:`bool<class_bool>` **has_overlapping_bodies** **(** **)** |const|
  345. Returns ``true`` if intersecting any :ref:`PhysicsBody2D<class_PhysicsBody2D>`\ s or :ref:`TileMap<class_TileMap>`\ s, otherwise returns ``false``. The overlapping body's :ref:`CollisionObject2D.collision_layer<class_CollisionObject2D_property_collision_layer>` must be part of this area's :ref:`CollisionObject2D.collision_mask<class_CollisionObject2D_property_collision_mask>` in order to be detected.
  346. For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
  347. .. rst-class:: classref-item-separator
  348. ----
  349. .. _class_Area2D_method_overlaps_area:
  350. .. rst-class:: classref-method
  351. :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
  352. Returns ``true`` if the given **Area2D** intersects or overlaps this **Area2D**, ``false`` otherwise.
  353. \ **Note:** The result of this test is not immediate after moving objects. For performance, the list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
  354. .. rst-class:: classref-item-separator
  355. ----
  356. .. _class_Area2D_method_overlaps_body:
  357. .. rst-class:: classref-method
  358. :ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
  359. Returns ``true`` if the given physics body intersects or overlaps this **Area2D**, ``false`` otherwise.
  360. \ **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
  361. The ``body`` argument can either be a :ref:`PhysicsBody2D<class_PhysicsBody2D>` or a :ref:`TileMap<class_TileMap>` instance. While TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body.
  362. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  363. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  364. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  365. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  366. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  367. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`