CollisionPolygon2D

Успадковує: Node2D < CanvasItem < Node < Object

Вузлом, який надає полігонну форму до CollisionObject2D батьків.

Опис

Вузол, який надає форму багатокутника батьківському елементу CollisionObject2D і дозволяє редагувати його. Багатокутник може бути увігнутим або опуклим. Це може надати форму виявлення Area2D, перетворити PhysicsBody2D на суцільний об’єкт або надати порожнисту форму StaticBody2D.

Попередження: ** Нерівномірно масштабований **CollisionPolygon2D, швидше за все, не буде поводитися належним чином. Обов’язково зберігайте його масштаб однаковим на всіх осях і натомість налаштуйте його багатокутник.

Властивості

BuildMode

build_mode

0

bool

disabled

false

bool

one_way_collision

false

float

one_way_collision_margin

1.0

PackedVector2Array

polygon

PackedVector2Array()


Переліки

enum BuildMode: 🔗

BuildMode BUILD_SOLIDS = 0

До послуг гостей полігон і його місткість. У цьому режимі вузол має той же ефект, як кілька ConvexPolygonShape2D вузлів, один для кожної опуклої форми в опуклій декомпозиції полігону (але без накладки декількох вузлів).

BuildMode BUILD_SEGMENTS = 1

Випадки тільки включають в себе полігонні краї. У цьому режимі вузол має той же ефект, як єдиний ConcavePolygonShape2D, виготовлений з сегментів, з обмеженням, що кожен сегмент (після першого) починається, де попередні кінці, і останні один кінець, де перший починає (формування закритого, але порожнистого полігону).


Описи властивостей

BuildMode build_mode = 0 🔗

Режим зіткнення.


bool disabled = false 🔗

  • void set_disabled(value: bool)

  • bool is_disabled()

Якщо true, колізії не будуть виявлені. Цю властивість слід змінити на Object.set_deferred().


bool one_way_collision = false 🔗

  • void set_one_way_collision(value: bool)

  • bool is_one_way_collision_enabled()

Якщо true, з іншими об'єктами зіштовхуватимуться лише ребра, спрямовані догори відносно обертання CollisionPolygon2D.

Примітка: Ця властивість не впливає, якщо цей CollisionPolygon2D є дочірнім об'єктом вузла Area2D.


float one_way_collision_margin = 1.0 🔗

  • void set_one_way_collision_margin(value: float)

  • float get_one_way_collision_margin()

Пошта, що використовується для одностороннього зіткнення (у пікселях). Більшість значень зроблять форму більш товстою, і працювати краще для комірок, які надходять в полігон на високій швидкості.


PackedVector2Array polygon = PackedVector2Array() 🔗

Перелік вершин полігону. Кожна точка буде підключена до наступного, а кінцева точка буде підключена до першого.

Примітка: Повернуті вершини знаходяться в локальному координатному просторі даної CollisionPolygon2D.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.