class_collisionobject2d.rst 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  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/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/CollisionObject2D.xml.
  6. .. _class_CollisionObject2D:
  7. CollisionObject2D
  8. =================
  9. **Inherits:** :ref:`Node2D<class_Node2D>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. **Inherited By:** :ref:`Area2D<class_Area2D>`, :ref:`PhysicsBody2D<class_PhysicsBody2D>`
  11. Base node for 2D collision objects.
  12. Description
  13. -----------
  14. CollisionObject2D is the base class for 2D physics objects. It can hold any number of 2D collision :ref:`Shape2D<class_Shape2D>`\ s. Each shape must be assigned to a *shape owner*. The CollisionObject2D can have any number of shape owners. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the ``shape_owner_*`` methods.
  15. \ **Note:** Only collisions between objects within the same canvas (:ref:`Viewport<class_Viewport>` canvas or :ref:`CanvasLayer<class_CanvasLayer>`) are supported. The behavior of collisions between objects in different canvases is undefined.
  16. Properties
  17. ----------
  18. +--------------------------------------------------------+--------------------------------------------------------------------------+----------+
  19. | :ref:`int<class_int>` | :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` | ``1`` |
  20. +--------------------------------------------------------+--------------------------------------------------------------------------+----------+
  21. | :ref:`int<class_int>` | :ref:`collision_mask<class_CollisionObject2D_property_collision_mask>` | ``1`` |
  22. +--------------------------------------------------------+--------------------------------------------------------------------------+----------+
  23. | :ref:`DisableMode<enum_CollisionObject2D_DisableMode>` | :ref:`disable_mode<class_CollisionObject2D_property_disable_mode>` | ``0`` |
  24. +--------------------------------------------------------+--------------------------------------------------------------------------+----------+
  25. | :ref:`bool<class_bool>` | :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` | ``true`` |
  26. +--------------------------------------------------------+--------------------------------------------------------------------------+----------+
  27. Methods
  28. -------
  29. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | void | :ref:`_input_event<class_CollisionObject2D_method__input_event>` **(** :ref:`Viewport<class_Viewport>` viewport, :ref:`InputEvent<class_InputEvent>` event, :ref:`int<class_int>` shape_idx **)** |virtual| |
  31. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`int<class_int>` | :ref:`create_shape_owner<class_CollisionObject2D_method_create_shape_owner>` **(** :ref:`Object<class_Object>` owner **)** |
  33. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`bool<class_bool>` | :ref:`get_collision_layer_value<class_CollisionObject2D_method_get_collision_layer_value>` **(** :ref:`int<class_int>` layer_number **)** |const| |
  35. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. | :ref:`bool<class_bool>` | :ref:`get_collision_mask_value<class_CollisionObject2D_method_get_collision_mask_value>` **(** :ref:`int<class_int>` layer_number **)** |const| |
  37. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`RID<class_RID>` | :ref:`get_rid<class_CollisionObject2D_method_get_rid>` **(** **)** |const| |
  39. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`float<class_float>` | :ref:`get_shape_owner_one_way_collision_margin<class_CollisionObject2D_method_get_shape_owner_one_way_collision_margin>` **(** :ref:`int<class_int>` owner_id **)** |const| |
  41. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`Array<class_Array>` | :ref:`get_shape_owners<class_CollisionObject2D_method_get_shape_owners>` **(** **)** |
  43. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`bool<class_bool>` | :ref:`is_shape_owner_disabled<class_CollisionObject2D_method_is_shape_owner_disabled>` **(** :ref:`int<class_int>` owner_id **)** |const| |
  45. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`bool<class_bool>` | :ref:`is_shape_owner_one_way_collision_enabled<class_CollisionObject2D_method_is_shape_owner_one_way_collision_enabled>` **(** :ref:`int<class_int>` owner_id **)** |const| |
  47. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | void | :ref:`remove_shape_owner<class_CollisionObject2D_method_remove_shape_owner>` **(** :ref:`int<class_int>` owner_id **)** |
  49. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | void | :ref:`set_collision_layer_value<class_CollisionObject2D_method_set_collision_layer_value>` **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)** |
  51. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | void | :ref:`set_collision_mask_value<class_CollisionObject2D_method_set_collision_mask_value>` **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)** |
  53. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`int<class_int>` | :ref:`shape_find_owner<class_CollisionObject2D_method_shape_find_owner>` **(** :ref:`int<class_int>` shape_index **)** |const| |
  55. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | void | :ref:`shape_owner_add_shape<class_CollisionObject2D_method_shape_owner_add_shape>` **(** :ref:`int<class_int>` owner_id, :ref:`Shape2D<class_Shape2D>` shape **)** |
  57. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | void | :ref:`shape_owner_clear_shapes<class_CollisionObject2D_method_shape_owner_clear_shapes>` **(** :ref:`int<class_int>` owner_id **)** |
  59. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`Object<class_Object>` | :ref:`shape_owner_get_owner<class_CollisionObject2D_method_shape_owner_get_owner>` **(** :ref:`int<class_int>` owner_id **)** |const| |
  61. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`Shape2D<class_Shape2D>` | :ref:`shape_owner_get_shape<class_CollisionObject2D_method_shape_owner_get_shape>` **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id **)** |const| |
  63. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`int<class_int>` | :ref:`shape_owner_get_shape_count<class_CollisionObject2D_method_shape_owner_get_shape_count>` **(** :ref:`int<class_int>` owner_id **)** |const| |
  65. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`int<class_int>` | :ref:`shape_owner_get_shape_index<class_CollisionObject2D_method_shape_owner_get_shape_index>` **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id **)** |const| |
  67. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`Transform2D<class_Transform2D>` | :ref:`shape_owner_get_transform<class_CollisionObject2D_method_shape_owner_get_transform>` **(** :ref:`int<class_int>` owner_id **)** |const| |
  69. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | void | :ref:`shape_owner_remove_shape<class_CollisionObject2D_method_shape_owner_remove_shape>` **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id **)** |
  71. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | void | :ref:`shape_owner_set_disabled<class_CollisionObject2D_method_shape_owner_set_disabled>` **(** :ref:`int<class_int>` owner_id, :ref:`bool<class_bool>` disabled **)** |
  73. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | void | :ref:`shape_owner_set_one_way_collision<class_CollisionObject2D_method_shape_owner_set_one_way_collision>` **(** :ref:`int<class_int>` owner_id, :ref:`bool<class_bool>` enable **)** |
  75. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | void | :ref:`shape_owner_set_one_way_collision_margin<class_CollisionObject2D_method_shape_owner_set_one_way_collision_margin>` **(** :ref:`int<class_int>` owner_id, :ref:`float<class_float>` margin **)** |
  77. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | void | :ref:`shape_owner_set_transform<class_CollisionObject2D_method_shape_owner_set_transform>` **(** :ref:`int<class_int>` owner_id, :ref:`Transform2D<class_Transform2D>` transform **)** |
  79. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. Signals
  81. -------
  82. .. _class_CollisionObject2D_signal_input_event:
  83. - **input_event** **(** :ref:`Node<class_Node>` viewport, :ref:`InputEvent<class_InputEvent>` event, :ref:`int<class_int>` shape_idx **)**
  84. Emitted when an input event occurs. Requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true`` and at least one ``collision_layer`` bit to be set. See :ref:`_input_event<class_CollisionObject2D_method__input_event>` for details.
  85. ----
  86. .. _class_CollisionObject2D_signal_mouse_entered:
  87. - **mouse_entered** **(** **)**
  88. Emitted when the mouse pointer enters any of this object's shapes. Requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true`` and at least one :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` bit to be set. Note that moving between different shapes within a single ``CollisionObject2D`` won't cause this signal to be emitted.
  89. ----
  90. .. _class_CollisionObject2D_signal_mouse_exited:
  91. - **mouse_exited** **(** **)**
  92. Emitted when the mouse pointer exits all this object's shapes. Requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true`` and at least one :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` bit to be set. Note that moving between different shapes within a single ``CollisionObject2D`` won't cause this signal to be emitted.
  93. ----
  94. .. _class_CollisionObject2D_signal_mouse_shape_entered:
  95. - **mouse_shape_entered** **(** :ref:`int<class_int>` shape_idx **)**
  96. Emitted when the mouse pointer enters any of this object's shapes or moves from one shape to another. ``shape_idx`` is the child index of the newly entered :ref:`Shape2D<class_Shape2D>`. Requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true`` and at least one :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` bit to be set.
  97. ----
  98. .. _class_CollisionObject2D_signal_mouse_shape_exited:
  99. - **mouse_shape_exited** **(** :ref:`int<class_int>` shape_idx **)**
  100. Emitted when the mouse pointer exits any of this object's shapes. ``shape_idx`` is the child index of the exited :ref:`Shape2D<class_Shape2D>`. Requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true`` and at least one :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` bit to be set.
  101. Enumerations
  102. ------------
  103. .. _enum_CollisionObject2D_DisableMode:
  104. .. _class_CollisionObject2D_constant_DISABLE_MODE_REMOVE:
  105. .. _class_CollisionObject2D_constant_DISABLE_MODE_MAKE_STATIC:
  106. .. _class_CollisionObject2D_constant_DISABLE_MODE_KEEP_ACTIVE:
  107. enum **DisableMode**:
  108. - **DISABLE_MODE_REMOVE** = **0** --- When :ref:`Node.process_mode<class_Node_property_process_mode>` is set to :ref:`Node.PROCESS_MODE_DISABLED<class_Node_constant_PROCESS_MODE_DISABLED>`, remove from the physics simulation to stop all physics interactions with this ``CollisionObject2D``.
  109. Automatically re-added to the physics simulation when the :ref:`Node<class_Node>` is processed again.
  110. - **DISABLE_MODE_MAKE_STATIC** = **1** --- When :ref:`Node.process_mode<class_Node_property_process_mode>` is set to :ref:`Node.PROCESS_MODE_DISABLED<class_Node_constant_PROCESS_MODE_DISABLED>`, make the body static. Doesn't affect :ref:`Area2D<class_Area2D>`. :ref:`PhysicsBody2D<class_PhysicsBody2D>` can't be affected by forces or other bodies while static.
  111. Automatically set :ref:`PhysicsBody2D<class_PhysicsBody2D>` back to its original mode when the :ref:`Node<class_Node>` is processed again.
  112. - **DISABLE_MODE_KEEP_ACTIVE** = **2** --- When :ref:`Node.process_mode<class_Node_property_process_mode>` is set to :ref:`Node.PROCESS_MODE_DISABLED<class_Node_constant_PROCESS_MODE_DISABLED>`, do not affect the physics simulation.
  113. Property Descriptions
  114. ---------------------
  115. .. _class_CollisionObject2D_property_collision_layer:
  116. - :ref:`int<class_int>` **collision_layer**
  117. +-----------+----------------------------+
  118. | *Default* | ``1`` |
  119. +-----------+----------------------------+
  120. | *Setter* | set_collision_layer(value) |
  121. +-----------+----------------------------+
  122. | *Getter* | get_collision_layer() |
  123. +-----------+----------------------------+
  124. The physics layers this CollisionObject2D is in. Collision objects can exist in one or more of 32 different layers. See also :ref:`collision_mask<class_CollisionObject2D_property_collision_mask>`.
  125. \ **Note:** Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See `Collision layers and masks <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ in the documentation for more information.
  126. ----
  127. .. _class_CollisionObject2D_property_collision_mask:
  128. - :ref:`int<class_int>` **collision_mask**
  129. +-----------+---------------------------+
  130. | *Default* | ``1`` |
  131. +-----------+---------------------------+
  132. | *Setter* | set_collision_mask(value) |
  133. +-----------+---------------------------+
  134. | *Getter* | get_collision_mask() |
  135. +-----------+---------------------------+
  136. The physics layers this CollisionObject2D scans. Collision objects can scan one or more of 32 different layers. See also :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>`.
  137. \ **Note:** Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See `Collision layers and masks <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ in the documentation for more information.
  138. ----
  139. .. _class_CollisionObject2D_property_disable_mode:
  140. - :ref:`DisableMode<enum_CollisionObject2D_DisableMode>` **disable_mode**
  141. +-----------+-------------------------+
  142. | *Default* | ``0`` |
  143. +-----------+-------------------------+
  144. | *Setter* | set_disable_mode(value) |
  145. +-----------+-------------------------+
  146. | *Getter* | get_disable_mode() |
  147. +-----------+-------------------------+
  148. Defines the behavior in physics when :ref:`Node.process_mode<class_Node_property_process_mode>` is set to :ref:`Node.PROCESS_MODE_DISABLED<class_Node_constant_PROCESS_MODE_DISABLED>`. See :ref:`DisableMode<enum_CollisionObject2D_DisableMode>` for more details about the different modes.
  149. ----
  150. .. _class_CollisionObject2D_property_input_pickable:
  151. - :ref:`bool<class_bool>` **input_pickable**
  152. +-----------+---------------------+
  153. | *Default* | ``true`` |
  154. +-----------+---------------------+
  155. | *Setter* | set_pickable(value) |
  156. +-----------+---------------------+
  157. | *Getter* | is_pickable() |
  158. +-----------+---------------------+
  159. If ``true``, this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` bit to be set.
  160. Method Descriptions
  161. -------------------
  162. .. _class_CollisionObject2D_method__input_event:
  163. - void **_input_event** **(** :ref:`Viewport<class_Viewport>` viewport, :ref:`InputEvent<class_InputEvent>` event, :ref:`int<class_int>` shape_idx **)** |virtual|
  164. Accepts unhandled :ref:`InputEvent<class_InputEvent>`\ s. Requires :ref:`input_pickable<class_CollisionObject2D_property_input_pickable>` to be ``true``. ``shape_idx`` is the child index of the clicked :ref:`Shape2D<class_Shape2D>`. Connect to the ``input_event`` signal to easily pick up these events.
  165. ----
  166. .. _class_CollisionObject2D_method_create_shape_owner:
  167. - :ref:`int<class_int>` **create_shape_owner** **(** :ref:`Object<class_Object>` owner **)**
  168. Creates a new shape owner for the given object. Returns ``owner_id`` of the new owner for future reference.
  169. ----
  170. .. _class_CollisionObject2D_method_get_collision_layer_value:
  171. - :ref:`bool<class_bool>` **get_collision_layer_value** **(** :ref:`int<class_int>` layer_number **)** |const|
  172. Returns whether or not the specified layer of the :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>` is enabled, given a ``layer_number`` between 1 and 32.
  173. ----
  174. .. _class_CollisionObject2D_method_get_collision_mask_value:
  175. - :ref:`bool<class_bool>` **get_collision_mask_value** **(** :ref:`int<class_int>` layer_number **)** |const|
  176. Returns whether or not the specified layer of the :ref:`collision_mask<class_CollisionObject2D_property_collision_mask>` is enabled, given a ``layer_number`` between 1 and 32.
  177. ----
  178. .. _class_CollisionObject2D_method_get_rid:
  179. - :ref:`RID<class_RID>` **get_rid** **(** **)** |const|
  180. Returns the object's :ref:`RID<class_RID>`.
  181. ----
  182. .. _class_CollisionObject2D_method_get_shape_owner_one_way_collision_margin:
  183. - :ref:`float<class_float>` **get_shape_owner_one_way_collision_margin** **(** :ref:`int<class_int>` owner_id **)** |const|
  184. Returns the ``one_way_collision_margin`` of the shape owner identified by given ``owner_id``.
  185. ----
  186. .. _class_CollisionObject2D_method_get_shape_owners:
  187. - :ref:`Array<class_Array>` **get_shape_owners** **(** **)**
  188. Returns an :ref:`Array<class_Array>` of ``owner_id`` identifiers. You can use these ids in other methods that take ``owner_id`` as an argument.
  189. ----
  190. .. _class_CollisionObject2D_method_is_shape_owner_disabled:
  191. - :ref:`bool<class_bool>` **is_shape_owner_disabled** **(** :ref:`int<class_int>` owner_id **)** |const|
  192. If ``true``, the shape owner and its shapes are disabled.
  193. ----
  194. .. _class_CollisionObject2D_method_is_shape_owner_one_way_collision_enabled:
  195. - :ref:`bool<class_bool>` **is_shape_owner_one_way_collision_enabled** **(** :ref:`int<class_int>` owner_id **)** |const|
  196. Returns ``true`` if collisions for the shape owner originating from this ``CollisionObject2D`` will not be reported to collided with ``CollisionObject2D``\ s.
  197. ----
  198. .. _class_CollisionObject2D_method_remove_shape_owner:
  199. - void **remove_shape_owner** **(** :ref:`int<class_int>` owner_id **)**
  200. Removes the given shape owner.
  201. ----
  202. .. _class_CollisionObject2D_method_set_collision_layer_value:
  203. - void **set_collision_layer_value** **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)**
  204. Based on ``value``, enables or disables the specified layer in the :ref:`collision_layer<class_CollisionObject2D_property_collision_layer>`, given a ``layer_number`` between 1 and 32.
  205. ----
  206. .. _class_CollisionObject2D_method_set_collision_mask_value:
  207. - void **set_collision_mask_value** **(** :ref:`int<class_int>` layer_number, :ref:`bool<class_bool>` value **)**
  208. Based on ``value``, enables or disables the specified layer in the :ref:`collision_mask<class_CollisionObject2D_property_collision_mask>`, given a ``layer_number`` between 1 and 32.
  209. ----
  210. .. _class_CollisionObject2D_method_shape_find_owner:
  211. - :ref:`int<class_int>` **shape_find_owner** **(** :ref:`int<class_int>` shape_index **)** |const|
  212. Returns the ``owner_id`` of the given shape.
  213. ----
  214. .. _class_CollisionObject2D_method_shape_owner_add_shape:
  215. - void **shape_owner_add_shape** **(** :ref:`int<class_int>` owner_id, :ref:`Shape2D<class_Shape2D>` shape **)**
  216. Adds a :ref:`Shape2D<class_Shape2D>` to the shape owner.
  217. ----
  218. .. _class_CollisionObject2D_method_shape_owner_clear_shapes:
  219. - void **shape_owner_clear_shapes** **(** :ref:`int<class_int>` owner_id **)**
  220. Removes all shapes from the shape owner.
  221. ----
  222. .. _class_CollisionObject2D_method_shape_owner_get_owner:
  223. - :ref:`Object<class_Object>` **shape_owner_get_owner** **(** :ref:`int<class_int>` owner_id **)** |const|
  224. Returns the parent object of the given shape owner.
  225. ----
  226. .. _class_CollisionObject2D_method_shape_owner_get_shape:
  227. - :ref:`Shape2D<class_Shape2D>` **shape_owner_get_shape** **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id **)** |const|
  228. Returns the :ref:`Shape2D<class_Shape2D>` with the given id from the given shape owner.
  229. ----
  230. .. _class_CollisionObject2D_method_shape_owner_get_shape_count:
  231. - :ref:`int<class_int>` **shape_owner_get_shape_count** **(** :ref:`int<class_int>` owner_id **)** |const|
  232. Returns the number of shapes the given shape owner contains.
  233. ----
  234. .. _class_CollisionObject2D_method_shape_owner_get_shape_index:
  235. - :ref:`int<class_int>` **shape_owner_get_shape_index** **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id **)** |const|
  236. Returns the child index of the :ref:`Shape2D<class_Shape2D>` with the given id from the given shape owner.
  237. ----
  238. .. _class_CollisionObject2D_method_shape_owner_get_transform:
  239. - :ref:`Transform2D<class_Transform2D>` **shape_owner_get_transform** **(** :ref:`int<class_int>` owner_id **)** |const|
  240. Returns the shape owner's :ref:`Transform2D<class_Transform2D>`.
  241. ----
  242. .. _class_CollisionObject2D_method_shape_owner_remove_shape:
  243. - void **shape_owner_remove_shape** **(** :ref:`int<class_int>` owner_id, :ref:`int<class_int>` shape_id **)**
  244. Removes a shape from the given shape owner.
  245. ----
  246. .. _class_CollisionObject2D_method_shape_owner_set_disabled:
  247. - void **shape_owner_set_disabled** **(** :ref:`int<class_int>` owner_id, :ref:`bool<class_bool>` disabled **)**
  248. If ``true``, disables the given shape owner.
  249. ----
  250. .. _class_CollisionObject2D_method_shape_owner_set_one_way_collision:
  251. - void **shape_owner_set_one_way_collision** **(** :ref:`int<class_int>` owner_id, :ref:`bool<class_bool>` enable **)**
  252. If ``enable`` is ``true``, collisions for the shape owner originating from this ``CollisionObject2D`` will not be reported to collided with ``CollisionObject2D``\ s.
  253. ----
  254. .. _class_CollisionObject2D_method_shape_owner_set_one_way_collision_margin:
  255. - void **shape_owner_set_one_way_collision_margin** **(** :ref:`int<class_int>` owner_id, :ref:`float<class_float>` margin **)**
  256. Sets the ``one_way_collision_margin`` of the shape owner identified by given ``owner_id`` to ``margin`` pixels.
  257. ----
  258. .. _class_CollisionObject2D_method_shape_owner_set_transform:
  259. - void **shape_owner_set_transform** **(** :ref:`int<class_int>` owner_id, :ref:`Transform2D<class_Transform2D>` transform **)**
  260. Sets the :ref:`Transform2D<class_Transform2D>` of the given shape owner.
  261. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  262. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  263. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  264. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  265. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  266. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`