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.

PhysicsDirectSpaceState2D

Eredita: Object

Ereditato da: PhysicsDirectSpaceState2DExtension

Fornisce accesso diretto a uno spazio fisico nel PhysicsServer2D.

Descrizione

Fornisce accesso diretto a uno spazio fisico nel PhysicsServer2D. È utilizzato principalmente per interrogare oggetti e aree che risiedono in un determinato spazio.

Nota: Questa classe non si dovrebbe istanziare direttamente. Utilizza World2D.direct_space_state per ottenere lo stato dello spazio fisico 2D del mondo.

Tutorial

Metodi

PackedFloat32Array

cast_motion(parameters: PhysicsShapeQueryParameters2D)

Array[Vector2]

collide_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32)

Dictionary

get_rest_info(parameters: PhysicsShapeQueryParameters2D)

Array[Dictionary]

intersect_point(parameters: PhysicsPointQueryParameters2D, max_results: int = 32)

Dictionary

intersect_ray(parameters: PhysicsRayQueryParameters2D)

Array[Dictionary]

intersect_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32)


Descrizioni dei metodi

PackedFloat32Array cast_motion(parameters: PhysicsShapeQueryParameters2D) 🔗

Verifica quanto lontano una Shape2D può muoversi senza entrare in collisione. Tutti i parametri per la richiesta, inclusi la forma e il movimento, sono forniti tramite un oggetto PhysicsShapeQueryParameters2D.

Restituisce un array con le proporzioni sicure e non sicure (tra 0 e 1) del movimento. La proporzione sicura è la frazione massima del movimento che può essere effettuata senza una collisione. La proporzione non sicura è la frazione minima della distanza che deve essere percorsa per una collisione. Se nessuna collisione è rilevata, sarà restituito un risultato di [1.0, 1.0].

Nota: Qualsiasi Shape2D con cui la forma è già in collisione, ad esempio all'interno, sarà ignorato. Utilizza collide_shape() per determinare le Shape2D con cui la forma è già in collisione.


Array[Vector2] collide_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) 🔗

Verifica le intersezioni di una forma, fornite tramite un oggetto PhysicsShapeQueryParameters2D, rispetto allo spazio. L'array restituito contiene una lista di punti in cui la forma ne interseca un'altra. Come con intersect_shape(), è possibile limitare il numero di risultati restituiti per risparmiare tempo di elaborazione.

I punti restituiti sono una lista di coppie di punti di contatto. Per ogni coppia, il primo punto è nella forma passata nell'oggetto PhysicsShapeQueryParameters2D, il secondo è nella forma in collisione dallo spazio fisico.


Dictionary get_rest_info(parameters: PhysicsShapeQueryParameters2D) 🔗

Verifica le intersezioni di una forma, fornite tramite un oggetto PhysicsShapeQueryParameters2D, rispetto allo spazio. Se entra in collisione con più di una forma, quella più vicina è selezionata. L'oggetto restituito è un dizionario contenente i seguenti campi:

collider_id: l'ID dell'oggetto in collisione.

linear_velocity: La velocità dell'oggetto in collisione come Vector2. Se l'oggetto è un Area2D, il risultato è (0, 0).

normal: La normale della collisione relativa alla forma dell'interrogazione nel punto di intersezione, che punta lontano dall'oggetto intersecante.

point: il punto di intersezione.

rid: il RID dell'oggetto in intersezione.

shape: l'indice di forma della forma in collisione.

Se la forma non ha intersecato nulla, viene restituito un dizionario vuoto.


Array[Dictionary] intersect_point(parameters: PhysicsPointQueryParameters2D, max_results: int = 32) 🔗

Verifica se un punto è all'interno di una forma solida. La posizione e altri parametri sono definiti tramite PhysicsPointQueryParameters2D. Le forme in cui si trova il punto sono restituite in un array contenente dizionari con i seguenti campi:

collider: l'oggetto in collisione.

collider_id: l'ID dell'oggetto in collisione.

rid: il RID dell'oggetto intersecante.

shape: l'indice di forma della forma in collisione.

È possibile limitare il numero di intersezioni con il parametro max_results, per ridurre il tempo di elaborazione.

Nota: ConcavePolygonShape2D e CollisionPolygon2D nelle modalità di costruzione Segments non sono forme solide. Pertanto, non saranno rilevate.


Dictionary intersect_ray(parameters: PhysicsRayQueryParameters2D) 🔗

Interseca un raggio in un determinato spazio. La posizione del raggio e altri parametri sono definiti tramite PhysicsRayQueryParameters2D. L'oggetto restituito è un dizionario con i seguenti campi:

collider: l'oggetto in collisione.

collider_id: l'ID dell'oggetto in collisione.

normal: la normale alla superficie dell'oggetto nel punto di intersezione, o Vector2(0, 0) se il raggio inizia all'interno della forma e PhysicsRayQueryParameters2D.hit_from_inside è true.

position: il punto di intersezione.

rid: il RID dell'oggetto in intersezione.

shape: l'indice della forma in collisione.

Se il raggio non ha intersecato nulla, un dizionario vuoto viene restituito.


Array[Dictionary] intersect_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) 🔗

Verifica le intersezioni di una forma, fornite tramite un oggetto PhysicsShapeQueryParameters2D, rispetto allo spazio. Le forme intersecate sono restituite in un array contenente dizionari con i seguenti campi:

collider: l'oggetto in collisione.

collider_id: l'ID dell'oggetto in collisione.

rid: il RID dell'oggetto in intersezione.

shape: l'indice della forma in collisione.

È possibile limitare il numero di intersezioni con il parametro max_results, per ridurre il tempo di elaborazione.