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.

CollisionPolygon2D

Eredita: Node2D < CanvasItem < Node < Object

Un nodo che fornisce una forma poligonale a un CollisionObject2D genitore.

Descrizione

A node that provides a polygon shape to a CollisionObject2D parent and allows it to be edited. The polygon can be concave or convex. This can give a detection shape to an Area2D, turn a PhysicsBody2D into a solid object, or give a hollow shape to a StaticBody2D.

Warning: A non-uniformly scaled CollisionPolygon2D will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its polygon instead.

Proprietà

BuildMode

build_mode

0

bool

disabled

false

bool

one_way_collision

false

Vector2

one_way_collision_direction

Vector2(0, 1)

float

one_way_collision_margin

1.0

PackedVector2Array

polygon

PackedVector2Array()


Enumerazioni

enum BuildMode: 🔗

BuildMode BUILD_SOLIDS = 0

Le collisioni includeranno il poligono e la sua area contenuta. In questa modalità il nodo ha lo stesso effetto di diversi nodi ConvexPolygonShape2D, uno per ogni forma convessa nella scomposizione convessa del poligono (ma senza il sovraccarico di più nodi).

BuildMode BUILD_SEGMENTS = 1

Le collisioni includeranno solo i bordi del poligono. In questa modalità il nodo ha lo stesso effetto di un singolo ConcavePolygonShape2D composto da segmenti, con la restrizione che ogni segmento (dopo il primo) inizia dove finisce il precedente, e l'ultimo finisce dove inizia il primo (formando un poligono chiuso ma cavo).


Descrizioni delle proprietà

BuildMode build_mode = 0 🔗

Modalità di costruzione delle collisioni.


bool disabled = false 🔗

  • void set_disabled(value: bool)

  • bool is_disabled()

Se true, nessuna collisione sarà rilevata. Questa proprietà dovrebbe essere modificata con Object.set_deferred().


bool one_way_collision = false 🔗

  • void set_one_way_collision(value: bool)

  • bool is_one_way_collision_enabled()

Se true, solo i bordi rivolti verso l'alto, rispetto alla rotazione di CollisionPolygon2D, entreranno in collisione con altri oggetti.

Nota: Questa proprietà non ha effetto se questo CollisionPolygon2D è un figlio di un nodo Area2D.

Nota: La direzione di collisione a senso unico si può configurare impostando one_way_collision_direction.


Vector2 one_way_collision_direction = Vector2(0, 1) 🔗

  • void set_one_way_collision_direction(value: Vector2)

  • Vector2 get_one_way_collision_direction()

The direction used for one-way collision.


float one_way_collision_margin = 1.0 🔗

  • void set_one_way_collision_margin(value: float)

  • float get_one_way_collision_margin()

Il margine utilizzato per la collisione a senso unico (in pixel). Valori più alti renderanno la forma più spessa e funzioneranno meglio per i collisori che entrano nel poligono ad alta velocità.


PackedVector2Array polygon = PackedVector2Array() 🔗

La lista dei vertici del poligono. Ogni punto sarà collegato al successivo, e il punto finale sarà collegato al primo.

Nota: I vertici restituiti sono nello spazio di coordinate locale del CollisionPolygon2D.

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