Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Shape2D
Наследует: Resource < RefCounted < Object
Наследуется от: CapsuleShape2D, CircleShape2D, ConcavePolygonShape2D, ConvexPolygonShape2D, RectangleShape2D, SegmentShape2D, SeparationRayShape2D, WorldBoundaryShape2D
Абстрактный базовый класс для двумерных фигур, используемых для физических столкновений.
Описание
Абстрактный базовый класс для всех 2D-фигур, предназначенный для использования в физике.
Производительность: Примитивные формы, особенно CircleShape2D, быстро проверяют столкновения. ConvexPolygonShape2D медленнее, а ConcavePolygonShape2D — самый медленный.
Обучающие материалы
Свойства
|
Методы
collide(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) |
|
collide_and_get_contacts(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) |
|
collide_with_motion(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) |
|
collide_with_motion_and_get_contacts(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) |
|
void |
|
get_rect() const |
Описания свойств
float custom_solver_bias = 0.0 🔗
Пользовательское смещение решателя формы. Определяет, насколько тела реагируют, чтобы обеспечить разделение контактов, когда задействована эта форма.
Если установлено значение 0, используется значение по умолчанию из ProjectSettings.physics/2d/solver/default_contact_bias.
Описания метода
bool collide(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) 🔗
Возвращает true, если эта фигура сталкивается с другой.
Для этого метода требуется матрица преобразования для этой фигуры (local_xform), фигура для проверки столкновений (with_shape) и матрица преобразования этой фигуры (shape_xform).
PackedVector2Array collide_and_get_contacts(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) 🔗
Возвращает список пар точек контакта, где эта фигура касается с другой.
Если столкновений нет, возвращаемый список пуст. В противном случае возвращаемый список содержит точки контакта, организованные парами, с записями, чередующимися между точками на границе этой фигуры и точками на границе with_shape.
Пара столкновений A, и B может использоваться для вычисления нормали столкновения с помощью (B - A).normalized() и глубины столкновения с помощью (B - A).length(). Эта информация обычно используется для разделения фигур, особенно в решение столкновений.
Для этого метода требуется матрица преобразования для этой фигуры (local_xform), фигура для проверки столкновений (with_shape) и матрица преобразования этой фигуры (shape_xform).
bool collide_with_motion(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) 🔗
Возвращает, будет ли эта фигура сталкиваться с другой, если было применено заданное движение.
Для этого метода требуется матрица преобразования для этой фигуры (local_xform), движение для проверки на этой фигуре (local_motion), фигура для проверки столкновений с (with_shape), матрица преобразования этой фигуры (shape_xform) и движение для проверки на другом объекте (shape_motion).
PackedVector2Array collide_with_motion_and_get_contacts(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) 🔗
Возвращает список пар точек контакта, где данная фигура соприкоснется с другой, если будет применено заданное движение.
Если бы не было столкновений, возвращаемый список был бы пуст. В противном случае возвращаемый список содержит точки контакта, организованные парами, с записями, чередующимися между точками на границе этой формы и точками на границе with_shape.
Пару столкновений A, B можно использовать для расчета нормали столкновения с помощью (B - A).normalized(), а глубину столкновения с помощью (B - A).length(). Эта информация обычно используется для разделения фигур, особенно в программах решения столкновений.
Для этого метода требуется матрица преобразования для этой формы (local_xform), движение для проверки этой формы (local_motion), форма для проверки столкновений с ней (with_shape), матрица преобразования этой формы (shape_xform) и движение для проверки другого объекта (shape_motion).
void draw(canvas_item: RID, color: Color) 🔗
Рисует сплошную фигуру на CanvasItem с API RenderingServer, заполненную указанным color. Точный метод рисования специфичен для каждой фигуры и не может быть настроен.
Возвращает Rect2, представляющий границу фигуры.