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.

Shape2D

Hérite de : Resource < RefCounted < Object

Hérité par : CapsuleShape2D, CircleShape2D, ConcavePolygonShape2D, ConvexPolygonShape2D, RectangleShape2D, SegmentShape2D, SeparationRayShape2D, WorldBoundaryShape2D

Classe de base abstraite pour les formes 2D utilisées pour les collisions physiques.

Description

Classe de base abstraite pour toutes les formes 2D, destinée à être utilisée pour la physique.

Performance : Les formes primitives, en particulier CircleShape2D, sont rapides pour vérifier les collisions. ConvexPolygonShape2D est plus lente, et ConcavePolygonShape2D est la plus lente.

Tutoriels

Propriétés

float

custom_solver_bias

0.0

Méthodes

bool

collide(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D)

PackedVector2Array

collide_and_get_contacts(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D)

bool

collide_with_motion(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2)

PackedVector2Array

collide_with_motion_and_get_contacts(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2)

void

draw(canvas_item: RID, color: Color)

Rect2

get_rect() const


Descriptions des propriétés

float custom_solver_bias = 0.0 🔗

  • void set_custom_solver_bias(value: float)

  • float get_custom_solver_bias()

Le biais personnalisé du solveur de la forme. Définit de combien les corps réagissent pour faire respecter la séparation des contacts lorsque cette forme est impliquée.

Lorsqu’il est défini à 0, la valeur par défaut de ProjectSettings.physics/2d/solver/default_contact_bias est utilisée.


Descriptions des méthodes

bool collide(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) 🔗

Renvoie true si cette forme est en collision avec une autre.

Cette méthode a besoin de la matrice de transformation de cette forme (local_xform), de la forme avec laquelle vérifier les collisions (with_shape), et de la matrice de transformation de cette dernière (shape_xform).


PackedVector2Array collide_and_get_contacts(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) 🔗

Renvoie une liste de paires de points de contact où cette forme touche une autre.

S'il n'y a pas de collision, la liste renvoyée est vide. Sinon, la liste renvoyée contient des points de contact disposés en paires, avec des entrées alternant entre des points sur la limite de cette forme et des points sur la limite de with_shape.

Une paire de collisions A, B peut être utilisée pour calculer la normale de la collision avec (B - A).normalized(), et la profondeur de la collision avec (B - A).length(). Cette information est généralement utilisée pour séparer les formes, en particulier dans les solveurs de collision.

Cette méthode a besoin de la matrice de transformation de cette forme (local_xform), de la forme avec laquelle vérifier les collisions (with_shape), et de la matrice de transformation de cette dernière (shape_xform).


bool collide_with_motion(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) 🔗

Renvoie si cette forme serait en collision avec une autre, si un mouvement donné serait appliqué.

Cette méthode a besoin de la matrice de transformation de cette forme (local_xform), du mouvement à tester sur cette forme (local_motion), de la forme avec laquelle vérifier les collisions (with_shape), la matrice de transformation de cette dernière (shape_xform), et du mouvement à tester sur l'autre objet (shape_motion).


PackedVector2Array collide_with_motion_and_get_contacts(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) 🔗

Renvoie une liste de paires de points de contact où cette forme toucherait une autre, si un mouvement donné serait appliqué.

S'il n'y a pas de collision, la liste renvoyée est vide. Sinon, la liste renvoyée contient des points de contact disposés en paires, avec des entrées alternant entre des points sur la limite de cette forme et des points sur la limite de with_shape.

Une paire de collisions A, B peut être utilisée pour calculer la normale de la collision avec (B - A).normalized(), et la profondeur de la collision avec (B - A).length(). Cette information est généralement utilisée pour séparer les formes, en particulier dans les solveurs de collision.

Cette méthode a besoin de la matrice de transformation de cette forme (local_xform), de la forme avec laquelle vérifier les collisions (with_shape), et de la matrice de transformation de cette dernière (shape_xform).


void draw(canvas_item: RID, color: Color) 🔗

Dessine une forme solide sur un CanvasItem avec l'API RenderingServer, remplie par la couleur color spécifiée. La méthode de dessin exacte est spécifique pour chaque forme et ne peut pas être configurée.


Rect2 get_rect() const 🔗

Renvoie un Rect2 représentant la délimitation de la forme.