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

Hereda: Node2D < CanvasItem < Node < Object

Un nodo que proporciona una forma de polígono a un padre CollisionObject2D.

Descripción

Un nodo que proporciona una forma de polígono a un padre CollisionObject2D y permite editarla. El polígono puede ser cóncavo o convexo. Esto puede dar una forma de detección a un Area2D, convertir un PhysicsBody2D en un objeto sólido, o dar una forma hueca a un StaticBody2D.

Advertencia: Un CollisionPolygon2D con una escala no uniforme probablemente no se comportará como se espera. Asegúrate de mantener su escala igual en todos los ejes y ajusta su polígono en su lugar.

Propiedades

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()


Enumeraciones

enum BuildMode: 🔗

BuildMode BUILD_SOLIDS = 0

Las colisiones incluirán el polígono y su área contenida. En este modo, el nodo tiene el mismo efecto que varios nodos ConvexPolygonShape2D, uno para cada forma convexa en la descomposición convexa del polígono (pero sin la sobrecarga de múltiples nodos).

BuildMode BUILD_SEGMENTS = 1

Las colisiones solo incluirán los bordes del polígono. En este modo, el nodo tiene el mismo efecto que un único ConcavePolygonShape2D hecho de segmentos, con la restricción de que cada segmento (después del primero) comienza donde termina el anterior, y el último termina donde comienza el primero (formando un polígono cerrado pero hueco).


Descripciones de Propiedades

BuildMode build_mode = 0 🔗

Modo de construcción de colisión.


bool disabled = false 🔗

  • void set_disabled(value: bool)

  • bool is_disabled()

Si es true, no se detectarán colisiones. Esta propiedad debe cambiarse con Object.set_deferred().


bool one_way_collision = false 🔗

  • void set_one_way_collision(value: bool)

  • bool is_one_way_collision_enabled()

If true, only edges that face up, relative to CollisionPolygon2D's rotation, will collide with other objects.

Note: This property has no effect if this CollisionPolygon2D is a child of an Area2D node.

Note: The one way collision direction can be configured by setting 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()

El margen utilizado para la colisión en un sentido (en píxeles). Valores más altos harán la forma más gruesa, y funcionará mejor para los colisionadores que entran en el polígono a alta velocidad.


PackedVector2Array polygon = PackedVector2Array() 🔗

The polygon's list of vertices. Each point will be connected to the next, and the final point will be connected to the first.

Note: The returned vertices are in the local coordinate space of the given CollisionPolygon2D.

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