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

Eredita: Resource < RefCounted < Object

Ereditato da: CapsuleShape2D, CircleShape2D, ConcavePolygonShape2D, ConvexPolygonShape2D, RectangleShape2D, SegmentShape2D, SeparationRayShape2D, WorldBoundaryShape2D

Classe di base astratta per forme 2D utilizzate per le collisioni fisiche.

Descrizione

Classe di base astratta per tutte le forme 2D, progettata per l'uso in fisica.

Prestazioni: Le forme primitive, in particolare CircleShape2D, sono veloci da verificare per le collisioni. ConvexPolygonShape2D è più lenta e ConcavePolygonShape2D è la più lenta.

Tutorial

Proprietà

float

custom_solver_bias

0.0

Metodi

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


Descrizioni delle proprietà

float custom_solver_bias = 0.0 🔗

  • void set_custom_solver_bias(value: float)

  • float get_custom_solver_bias()

Il bias personalizzato del risolutore della forma. Definisce quanto i corpi reagiscono per imporre la separazione dei contatti quando è coinvolta questa forma.

Quando impostato su 0, è usato il valore predefinito da ProjectSettings.physics/2d/solver/default_contact_bias.


Descrizioni dei metodi

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

Restituisce true se questa forma è in collisione con un'altra.

Questo metodo necessita della matrice di trasformazione per questa forma (local_xform), della forma con cui verificare le collisioni (with_shape) e della matrice di trasformazione di quella forma (shape_xform).


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

Restituisce una lista di coppie di punti di contatto in cui questa forma tocca un'altra.

Se non ci sono collisioni, la lista restituita è vuota. Altrimenti, la lista restituita contiene i punti di contatto disposti in coppie, con elementi che si alternano tra punti sul confine di questa forma e punti sul confine di with_shape.

Una coppia di collisioni A, B può essere utilizzata per calcolare la normale di collisione con (B - A).normalized() e la profondità di collisione con (B - A).length(). Queste informazioni sono in genere utilizzate per separare le forme, in particolare nei risolutori di collisioni.

Questo metodo necessita della matrice di trasformazione per questa forma (local_xform), della forma con cui verificare le collisioni (with_shape) e della matrice di trasformazione di quella forma (shape_xform).


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

Restituisce se questa forma entrerebbe in collisione con un'altra, se fosse applicato un determinato movimento.

Questo metodo necessita della matrice di trasformazione per questa forma (local_xform), del movimento da testare su questa forma (local_motion), della forma con cui verificare le collisioni (with_shape), della matrice di trasformazione di quella forma (shape_xform) e del movimento da testare sull'altro oggetto (shape_motion).


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

Restituisce una lista di coppie di punti di contatto in cui questa forma ne toccherebbe un'altra, se fosse applicato un determinato movimento.

Se non ci fossero collisioni, la lista restituita è vuoto. Altrimenti, la lista restituita contiene i punti di contatto disposti in coppie, con elementi che si alternano tra punti sul confine di questa forma e punti sul confine di with_shape.

Una coppia di collisioni A, B può essere utilizzata per calcolare la normale di collisione con (B - A).normalized() e la profondità di collisione con (B - A).length(). Queste informazioni sono in genere utilizzate per separare le forme, in particolare nei risolutori di collisioni.

Questo metodo necessita della matrice di trasformazione per questa forma (local_xform), del movimento da testare su questa forma (local_motion), della forma con cui verificare le collisioni (with_shape), della matrice di trasformazione di quella forma (shape_xform) e del movimento da testare sull'altro oggetto (shape_motion).


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

Disegna una forma solida su un CanvasItem riempita con il colore color attraverso l'API del RenderingServer. Il metodo di disegno esatto è specifico per ogni forma e non può essere configurato.


Rect2 get_rect() const 🔗

Restituisce un Rect2 che rappresenta il confine della forma.