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, представляющий границу фигуры.