:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the Shape2D.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_Shape2D: Shape2D ======= **Inherits:** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`Object` **Inherited By:** :ref:`CapsuleShape2D`, :ref:`CircleShape2D`, :ref:`ConcavePolygonShape2D`, :ref:`ConvexPolygonShape2D`, :ref:`LineShape2D`, :ref:`RayShape2D`, :ref:`RectangleShape2D`, :ref:`SegmentShape2D` Base class for all 2D shapes. Description ----------- Base class for all 2D shapes. All 2D shape types inherit from this. Tutorials --------- - :doc:`../tutorials/physics/physics_introduction` Properties ---------- +---------------------------+----------------------------------------------------------------------+---------+ | :ref:`float` | :ref:`custom_solver_bias` | ``0.0`` | +---------------------------+----------------------------------------------------------------------+---------+ Methods ------- +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`collide` **(** :ref:`Transform2D` local_xform, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`collide_and_get_contacts` **(** :ref:`Transform2D` local_xform, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`collide_with_motion` **(** :ref:`Transform2D` local_xform, :ref:`Vector2` local_motion, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform, :ref:`Vector2` shape_motion **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`collide_with_motion_and_get_contacts` **(** :ref:`Transform2D` local_xform, :ref:`Vector2` local_motion, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform, :ref:`Vector2` shape_motion **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`draw` **(** :ref:`RID` canvas_item, :ref:`Color` color **)** | +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Property Descriptions --------------------- .. _class_Shape2D_property_custom_solver_bias: - :ref:`float` **custom_solver_bias** +-----------+-------------------------------+ | *Default* | ``0.0`` | +-----------+-------------------------------+ | *Setter* | set_custom_solver_bias(value) | +-----------+-------------------------------+ | *Getter* | get_custom_solver_bias() | +-----------+-------------------------------+ The shape's custom solver bias. Method Descriptions ------------------- .. _class_Shape2D_method_collide: - :ref:`bool` **collide** **(** :ref:`Transform2D` local_xform, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform **)** Returns ``true`` if this shape is colliding with another. This method needs the transformation matrix for this shape (``local_xform``), the shape to check collisions with (``with_shape``), and the transformation matrix of that shape (``shape_xform``). ---- .. _class_Shape2D_method_collide_and_get_contacts: - :ref:`Array` **collide_and_get_contacts** **(** :ref:`Transform2D` local_xform, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform **)** Returns a list of the points where this shape touches another. If there are no collisions the list is empty. This method needs the transformation matrix for this shape (``local_xform``), the shape to check collisions with (``with_shape``), and the transformation matrix of that shape (``shape_xform``). ---- .. _class_Shape2D_method_collide_with_motion: - :ref:`bool` **collide_with_motion** **(** :ref:`Transform2D` local_xform, :ref:`Vector2` local_motion, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform, :ref:`Vector2` shape_motion **)** Returns whether this shape would collide with another, if a given movement was applied. This method needs the transformation matrix for this shape (``local_xform``), the movement to test on this shape (``local_motion``), the shape to check collisions with (``with_shape``), the transformation matrix of that shape (``shape_xform``), and the movement to test onto the other object (``shape_motion``). ---- .. _class_Shape2D_method_collide_with_motion_and_get_contacts: - :ref:`Array` **collide_with_motion_and_get_contacts** **(** :ref:`Transform2D` local_xform, :ref:`Vector2` local_motion, :ref:`Shape2D` with_shape, :ref:`Transform2D` shape_xform, :ref:`Vector2` shape_motion **)** Returns a list of the points where this shape would touch another, if a given movement was applied. If there are no collisions the list is empty. This method needs the transformation matrix for this shape (``local_xform``), the movement to test on this shape (``local_motion``), the shape to check collisions with (``with_shape``), the transformation matrix of that shape (``shape_xform``), and the movement to test onto the other object (``shape_motion``). ---- .. _class_Shape2D_method_draw: - void **draw** **(** :ref:`RID` canvas_item, :ref:`Color` color **)** Draws a solid shape onto a :ref:`CanvasItem` with the :ref:`VisualServer` API filled with the specified ``color``. The exact drawing method is specific for each shape and cannot be configured. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |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.)`