:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/StaticBody2D.xml. .. _class_StaticBody2D: StaticBody2D ============ **Inherits:** :ref:`PhysicsBody2D` **<** :ref:`CollisionObject2D` **<** :ref:`Node2D` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Inherited By:** :ref:`AnimatableBody2D` A 2D physics body that can't be moved by external forces. When moved manually, it doesn't affect other bodies in its path. .. rst-class:: classref-introduction-group Description ----------- A static 2D physics body. It can't be moved by external forces or contacts, but can be moved manually by other means such as code, :ref:`AnimationMixer`\ s (with :ref:`AnimationMixer.callback_mode_process` set to :ref:`AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS`), and :ref:`RemoteTransform2D`. When **StaticBody2D** is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use :ref:`AnimatableBody2D` instead. \ **StaticBody2D** is useful for completely static objects like floors and walls, as well as moving surfaces like conveyor belts and circular revolving platforms (by using :ref:`constant_linear_velocity` and :ref:`constant_angular_velocity`). .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+ | :ref:`float` | :ref:`constant_angular_velocity` | ``0.0`` | +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+ | :ref:`Vector2` | :ref:`constant_linear_velocity` | ``Vector2(0, 0)`` | +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+ | :ref:`PhysicsMaterial` | :ref:`physics_material_override` | | +-----------------------------------------------+-----------------------------------------------------------------------------------------+-------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_StaticBody2D_property_constant_angular_velocity: .. rst-class:: classref-property :ref:`float` **constant_angular_velocity** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_constant_angular_velocity**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_constant_angular_velocity**\ (\ ) The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating. .. rst-class:: classref-item-separator ---- .. _class_StaticBody2D_property_constant_linear_velocity: .. rst-class:: classref-property :ref:`Vector2` **constant_linear_velocity** = ``Vector2(0, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_constant_linear_velocity**\ (\ value\: :ref:`Vector2`\ ) - :ref:`Vector2` **get_constant_linear_velocity**\ (\ ) The body's constant linear velocity. This does not move the body, but affects touching bodies, as if it were moving. .. rst-class:: classref-item-separator ---- .. _class_StaticBody2D_property_physics_material_override: .. rst-class:: classref-property :ref:`PhysicsMaterial` **physics_material_override** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_physics_material_override**\ (\ value\: :ref:`PhysicsMaterial`\ ) - :ref:`PhysicsMaterial` **get_physics_material_override**\ (\ ) The physics material override for the body. If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`