class_staticbody2d.rst 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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/StaticBody2D.xml.
  6. .. _class_StaticBody2D:
  7. StaticBody2D
  8. ============
  9. **Inherits:** :ref:`PhysicsBody2D<class_PhysicsBody2D>` **<** :ref:`CollisionObject2D<class_CollisionObject2D>` **<** :ref:`Node2D<class_Node2D>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. **Inherited By:** :ref:`AnimatableBody2D<class_AnimatableBody2D>`
  11. Physics body for 2D physics which is static or moves only by script (without affecting other bodies on its path). Useful for floors and walls.
  12. .. rst-class:: classref-introduction-group
  13. Description
  14. -----------
  15. Static body for 2D physics.
  16. A static body is a simple body that doesn't move under physics simulation, i.e. it can't be moved by external forces or contacts but its transformation can still be updated manually by the user. It is ideal for implementing objects in the environment, such as walls or platforms. In contrast to :ref:`RigidBody2D<class_RigidBody2D>`, it doesn't consume any CPU resources as long as they don't move.
  17. They have extra functionalities to move and affect other bodies:
  18. \ **Static transform change:** Static bodies *can* be moved by animation or script. In this case, they are just teleported and don't affect other bodies on their path. Use :ref:`AnimatableBody2D<class_AnimatableBody2D>` instead of **StaticBody2D** if you need a moving static body that affects other bodies on its path.
  19. \ **Constant velocity:** When :ref:`constant_linear_velocity<class_StaticBody2D_property_constant_linear_velocity>` or :ref:`constant_angular_velocity<class_StaticBody2D_property_constant_angular_velocity>` is set, static bodies don't move themselves but affect touching bodies as if they were moving. This is useful for simulating conveyor belts or conveyor wheels.
  20. .. rst-class:: classref-reftable-group
  21. Properties
  22. ----------
  23. .. table::
  24. :widths: auto
  25. +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
  26. | :ref:`float<class_float>` | :ref:`constant_angular_velocity<class_StaticBody2D_property_constant_angular_velocity>` | ``0.0`` |
  27. +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
  28. | :ref:`Vector2<class_Vector2>` | :ref:`constant_linear_velocity<class_StaticBody2D_property_constant_linear_velocity>` | ``Vector2(0, 0)`` |
  29. +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
  30. | :ref:`PhysicsMaterial<class_PhysicsMaterial>` | :ref:`physics_material_override<class_StaticBody2D_property_physics_material_override>` | |
  31. +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+
  32. .. rst-class:: classref-section-separator
  33. ----
  34. .. rst-class:: classref-descriptions-group
  35. Property Descriptions
  36. ---------------------
  37. .. _class_StaticBody2D_property_constant_angular_velocity:
  38. .. rst-class:: classref-property
  39. :ref:`float<class_float>` **constant_angular_velocity** = ``0.0``
  40. .. rst-class:: classref-property-setget
  41. - void **set_constant_angular_velocity** **(** :ref:`float<class_float>` value **)**
  42. - :ref:`float<class_float>` **get_constant_angular_velocity** **(** **)**
  43. The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating.
  44. .. rst-class:: classref-item-separator
  45. ----
  46. .. _class_StaticBody2D_property_constant_linear_velocity:
  47. .. rst-class:: classref-property
  48. :ref:`Vector2<class_Vector2>` **constant_linear_velocity** = ``Vector2(0, 0)``
  49. .. rst-class:: classref-property-setget
  50. - void **set_constant_linear_velocity** **(** :ref:`Vector2<class_Vector2>` value **)**
  51. - :ref:`Vector2<class_Vector2>` **get_constant_linear_velocity** **(** **)**
  52. The body's constant linear velocity. This does not move the body, but affects touching bodies, as if it were moving.
  53. .. rst-class:: classref-item-separator
  54. ----
  55. .. _class_StaticBody2D_property_physics_material_override:
  56. .. rst-class:: classref-property
  57. :ref:`PhysicsMaterial<class_PhysicsMaterial>` **physics_material_override**
  58. .. rst-class:: classref-property-setget
  59. - void **set_physics_material_override** **(** :ref:`PhysicsMaterial<class_PhysicsMaterial>` value **)**
  60. - :ref:`PhysicsMaterial<class_PhysicsMaterial>` **get_physics_material_override** **(** **)**
  61. The physics material override for the body.
  62. If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
  63. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  64. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  65. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  66. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  67. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  68. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`