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.
Checking the stable version of the documentation...
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.