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à
|
Metodi
collide(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) |
|
collide_and_get_contacts(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) |
|
collide_with_motion(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) |
|
collide_with_motion_and_get_contacts(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) |
|
void |
|
get_rect() const |
Descrizioni delle proprietà
float custom_solver_bias = 0.0 🔗
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.
Restituisce un Rect2 che rappresenta il confine della forma.