class_physicsbody2d.rst 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the doc/base/classes.xml source instead.
  3. .. _class_PhysicsBody2D:
  4. PhysicsBody2D
  5. =============
  6. **Inherits:** :ref:`CollisionObject2D<class_collisionobject2d>` **<** :ref:`Node2D<class_node2d>` **<** :ref:`CanvasItem<class_canvasitem>` **<** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`
  7. **Inherited By:** :ref:`RigidBody2D<class_rigidbody2d>`, :ref:`StaticBody2D<class_staticbody2d>`, :ref:`KinematicBody2D<class_kinematicbody2d>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. Base class for all objects affected by physics.
  12. Member Functions
  13. ----------------
  14. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  15. | void | :ref:`add_collision_exception_with<class_PhysicsBody2D_add_collision_exception_with>` **(** :ref:`PhysicsBody2D<class_physicsbody2d>` body **)** |
  16. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. | :ref:`int<class_int>` | :ref:`get_collision_mask<class_PhysicsBody2D_get_collision_mask>` **(** **)** const |
  18. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  19. | :ref:`bool<class_bool>` | :ref:`get_collision_mask_bit<class_PhysicsBody2D_get_collision_mask_bit>` **(** :ref:`int<class_int>` bit **)** const |
  20. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  21. | :ref:`int<class_int>` | :ref:`get_layer_mask<class_PhysicsBody2D_get_layer_mask>` **(** **)** const |
  22. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | :ref:`bool<class_bool>` | :ref:`get_layer_mask_bit<class_PhysicsBody2D_get_layer_mask_bit>` **(** :ref:`int<class_int>` bit **)** const |
  24. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | :ref:`Vector2<class_vector2>` | :ref:`get_one_way_collision_direction<class_PhysicsBody2D_get_one_way_collision_direction>` **(** **)** const |
  26. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | :ref:`float<class_float>` | :ref:`get_one_way_collision_max_depth<class_PhysicsBody2D_get_one_way_collision_max_depth>` **(** **)** const |
  28. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | void | :ref:`remove_collision_exception_with<class_PhysicsBody2D_remove_collision_exception_with>` **(** :ref:`PhysicsBody2D<class_physicsbody2d>` body **)** |
  30. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | void | :ref:`set_collision_mask<class_PhysicsBody2D_set_collision_mask>` **(** :ref:`int<class_int>` mask **)** |
  32. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | void | :ref:`set_collision_mask_bit<class_PhysicsBody2D_set_collision_mask_bit>` **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)** |
  34. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | void | :ref:`set_layer_mask<class_PhysicsBody2D_set_layer_mask>` **(** :ref:`int<class_int>` mask **)** |
  36. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | void | :ref:`set_layer_mask_bit<class_PhysicsBody2D_set_layer_mask_bit>` **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)** |
  38. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | void | :ref:`set_one_way_collision_direction<class_PhysicsBody2D_set_one_way_collision_direction>` **(** :ref:`Vector2<class_vector2>` dir **)** |
  40. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | void | :ref:`set_one_way_collision_max_depth<class_PhysicsBody2D_set_one_way_collision_max_depth>` **(** :ref:`float<class_float>` depth **)** |
  42. +--------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. Description
  44. -----------
  45. PhysicsBody2D is an abstract base class for implementing a physics body. All \*Body2D types inherit from it.
  46. Member Function Description
  47. ---------------------------
  48. .. _class_PhysicsBody2D_add_collision_exception_with:
  49. - void **add_collision_exception_with** **(** :ref:`PhysicsBody2D<class_physicsbody2d>` body **)**
  50. Adds a body to the collision exception list. This list contains bodies that this body will not collide with.
  51. .. _class_PhysicsBody2D_get_collision_mask:
  52. - :ref:`int<class_int>` **get_collision_mask** **(** **)** const
  53. Return the physics layers this area can scan for collisions.
  54. .. _class_PhysicsBody2D_get_collision_mask_bit:
  55. - :ref:`bool<class_bool>` **get_collision_mask_bit** **(** :ref:`int<class_int>` bit **)** const
  56. Return an individual bit on the collision mask.
  57. .. _class_PhysicsBody2D_get_layer_mask:
  58. - :ref:`int<class_int>` **get_layer_mask** **(** **)** const
  59. Return the physics layer this area is in.
  60. .. _class_PhysicsBody2D_get_layer_mask_bit:
  61. - :ref:`bool<class_bool>` **get_layer_mask_bit** **(** :ref:`int<class_int>` bit **)** const
  62. Return an individual bit on the collision mask.
  63. .. _class_PhysicsBody2D_get_one_way_collision_direction:
  64. - :ref:`Vector2<class_vector2>` **get_one_way_collision_direction** **(** **)** const
  65. Return the direction used for one-way collision detection.
  66. .. _class_PhysicsBody2D_get_one_way_collision_max_depth:
  67. - :ref:`float<class_float>` **get_one_way_collision_max_depth** **(** **)** const
  68. Return how far a body can go through this one, when it allows one-way collisions.
  69. .. _class_PhysicsBody2D_remove_collision_exception_with:
  70. - void **remove_collision_exception_with** **(** :ref:`PhysicsBody2D<class_physicsbody2d>` body **)**
  71. Removes a body from the collision exception list.
  72. .. _class_PhysicsBody2D_set_collision_mask:
  73. - void **set_collision_mask** **(** :ref:`int<class_int>` mask **)**
  74. Set the physics layers this area can scan for collisions.
  75. .. _class_PhysicsBody2D_set_collision_mask_bit:
  76. - void **set_collision_mask_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
  77. Set/clear individual bits on the collision mask. This makes selecting the areas scanned easier.
  78. .. _class_PhysicsBody2D_set_layer_mask:
  79. - void **set_layer_mask** **(** :ref:`int<class_int>` mask **)**
  80. Set the physics layers this area is in.
  81. Collidable objects can exist in any of 32 different layers. These layers are not visual, but more of a tagging system instead. A collidable can use these layers/tags to select with which objects it can collide, using :ref:`set_collision_mask<class_PhysicsBody2D_set_collision_mask>`.
  82. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A.
  83. .. _class_PhysicsBody2D_set_layer_mask_bit:
  84. - void **set_layer_mask_bit** **(** :ref:`int<class_int>` bit, :ref:`bool<class_bool>` value **)**
  85. Set/clear individual bits on the layer mask. This makes getting a body in/out of only one layer easier.
  86. .. _class_PhysicsBody2D_set_one_way_collision_direction:
  87. - void **set_one_way_collision_direction** **(** :ref:`Vector2<class_vector2>` dir **)**
  88. Set a direction from which bodies can go through this one; that is, the passed vector is the normal of the pass-through side of the surface. If this value is different from (0,0), any movement within 90 degrees of the opposite of this vector is considered an valid movement. Set this direction to (0,0) to disable one-way collisions.
  89. .. _class_PhysicsBody2D_set_one_way_collision_max_depth:
  90. - void **set_one_way_collision_max_depth** **(** :ref:`float<class_float>` depth **)**
  91. Set how deep at most a body can be with respect to this one for the physics server to force it to a non-overlapping position, if it allows one-way collisions (see :ref:`body_set_one_way_collision_direction<class_PhysicsBody2D_body_set_one_way_collision_direction>`).