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...
PhysicsServer2D
Eredita: Object
Ereditato da: PhysicsServer2DExtension
Un'interfaccia server per l'accesso di basso livello alla fisica 2D.
Descrizione
PhysicsServer2D è il server responsabile di tutta la fisica 2D. Può creare e manipolare direttamente tutti gli oggetti fisici:
Uno spazio è un mondo autonomo per una simulazione fisica. Contiene corpi, aree e giunti. Il suo stato può essere interrogato per informazioni sulle collisioni e le intersezioni. Inoltre, è possibile modificare diversi parametri della simulazione.
Una forma è una forma geometrica come una sfera, un rettangolo, una capsula o un poligono. Può essere utilizzata per rilevare le collisioni aggiungendola a un corpo/area, possibilmente con un'ulteriore trasformazione relativa all'origine del corpo/area. Più forme (trasformate) possono essere aggiunte ai corpi/aree e una singola forma può essere aggiunta più volte a corpi/aree con diverse trasformazioni locali.
Un corpo è un oggetto fisico che può essere in modalità statica, cinematica o rigida. Il suo stato (come posizione e velocità) può essere interrogato e aggiornato. È possibile impostare un callback di integrazione della forza per personalizzare la fisica del corpo.
Un'area è una regione nello spazio che può essere utilizzata per rilevare i corpi e le aree che entrano ed escono da essa. È possibile impostare un callback di monitoraggio dei corpi per segnalare le forme dei corpi in entrata/uscita e, allo stesso modo per le forme di altre aree. La gravità e lo smorzamento possono essere ignorati all'interno dell'area impostando i parametri dell'area.
Un giunto è un vincolo, tra due corpi o su un corpo, rispetto a un punto. È possibile regolare i parametri come il bias del giunto e la lunghezza di riposo di un giunto a molla.
Gli oggetti fisici in PhysicsServer2D possono essere creati e manipolati in modo indipendente; non devono essere associati ai nodi nell'albero di scene.
Nota: Tutti i nodi fisici 2D utilizzano internamente il server di fisica. L'aggiunta di un nodo fisico all'albero di scene causerà la creazione di un oggetto fisico corrispondente nel server di fisica. Un nodo corpo rigido registra un callback che aggiorna la trasformazione del nodo con la trasformazione del rispettivo oggetto corpo nel server di fisica (ad ogni aggiornamento della fisica). Un nodo area registra un callback per informare il nodo area sulle sovrapposizioni con il rispettivo oggetto area nel server di fisica. Il nodo raycast interroga lo stato diretto dello spazio rilevante nel server di fisica.
Metodi
Enumerazioni
enum SpaceParameter: 🔗
SpaceParameter SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0
Costante per impostare/ottenere la distanza massima che una coppia di corpi deve percorrere prima che il loro stato di collisione debba essere ricalcolato. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/solver/contact_recycle_radius.
SpaceParameter SPACE_PARAM_CONTACT_MAX_SEPARATION = 1
Costante per impostare/ottenere la distanza massima che una forma può avere da un'altra prima che siano considerate separate e il contatto sia scartato. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/solver/contact_max_separation.
SpaceParameter SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION = 2
Costante per impostare/ottenere la distanza massima entro cui una forma può penetrare un'altra forma prima che sia considerata una collisione. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/solver/contact_max_allowed_penetration.
SpaceParameter SPACE_PARAM_CONTACT_DEFAULT_BIAS = 3
Costante per impostare/ottenere il bias predefinito del risolutore per tutti i contatti fisici. Un bias del risolutore è un fattore che controlla quanto due oggetti "rimbalzano", dopo essersi sovrapposti, per evitare di lasciarli in quella situazione a causa di un'imprecisione numerica. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/solver/default_contact_bias.
SpaceParameter SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 4
Costante per impostare/ottenere la soglia della velocità lineare di attività. Un corpo contrassegnato come potenzialmente inattivo sia per la velocità lineare sia per quella angolare sarà messo in modalità riposo dopo il tempo specificato. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/sleep_threshold_linear.
SpaceParameter SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 5
Costante per impostare/ottenere la soglia della velocità angolare di attività. Un corpo contrassegnato come potenzialmente inattivo sia per la velocità lineare sia per quella angolare sarà messo in modalità riposo dopo il tempo specificato. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/sleep_threshold_angular.
SpaceParameter SPACE_PARAM_BODY_TIME_TO_SLEEP = 6
Costante per impostare/ottenere il tempo massimo di attività. Un corpo contrassegnato come potenzialmente inattivo sia per la velocità lineare sia per quella angolare sarà messo in modalità riposo dopo questo tempo. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/time_before_sleep.
SpaceParameter SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7
Costante per impostare/ottenere il bias predefinito del risolutore per tutti i vincoli fisici. Un bias del risolutore è un fattore che controlla quanto due oggetti "rimbalzano", dopo aver violato un vincolo, per evitare di lasciarli in quella situazione a causa di un'imprecisione numerica. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/solver/default_constraint_bias.
SpaceParameter SPACE_PARAM_SOLVER_ITERATIONS = 8
Costante per impostare/ottenere il numero di iterazioni del risolutore per tutti i contatti e i vincoli. Maggiore è il numero di iterazioni, più accurate saranno le collisioni. Tuttavia, un numero maggiore di iterazioni richiede una maggiore potenza della CPU, il che può ridurre le prestazioni. Il valore predefinito di questo parametro è ProjectSettings.physics/2d/solver/solver_iterations.
enum ShapeType: 🔗
ShapeType SHAPE_WORLD_BOUNDARY = 0
Questa è la costante per creare forme di confine del mondo. Una forma di confine del mondo è una linea infinita con un punto di origine e una normale. Quindi, può essere usata per verifiche di fronte e retro.
ShapeType SHAPE_SEPARATION_RAY = 1
Questa è la costante per creare forme di raggio di separazione. Un raggio di separazione è definito da una lunghezza e si separa da ciò che tocca la sua estremità lontana. Utile per i controller di personaggi.
ShapeType SHAPE_SEGMENT = 2
Questa è la costante per creare forme di segmento. Una forma di segmento è una linea finita da un punto A a un punto B. Può essere verificata per intersezioni.
ShapeType SHAPE_CIRCLE = 3
Questa è la costante per creare forme di cerchio. Una forma di cerchio ha solo un raggio. Può essere utilizzata per verifiche di intersezioni e di interni/esterni.
ShapeType SHAPE_RECTANGLE = 4
Questa è la costante per creare forme di rettangolo. Una forma di rettangolo è definita da una larghezza e un'altezza. Può essere utilizzata per verifiche di intersezioni e di interni/esterni.
ShapeType SHAPE_CAPSULE = 5
Questa è la costante per creare forme di capsula. Una forma di capsula è definita da un raggio e una lunghezza. Può essere utilizzata per verifiche di intersezioni e di interni/esterni.
ShapeType SHAPE_CONVEX_POLYGON = 6
Questa è la costante per creare forme di poligoni convessi. Un poligono è definito da una lista di punti. Può essere utilizzato per verifiche di intersezioni e di interni/esterni.
ShapeType SHAPE_CONCAVE_POLYGON = 7
Questa è la costante per creare forme di poligoni concavi. Un poligono è definito da una lista di punti. Può essere utilizzato per verifiche di intersezioni, ma non per verifiche di interni/esterni.
ShapeType SHAPE_CUSTOM = 8
Questa costante è usata internamente dal motore. Ogni tentativo di creare questo tipo di forma risulta in un errore.
enum AreaParameter: 🔗
AreaParameter AREA_PARAM_GRAVITY_OVERRIDE_MODE = 0
Costante per impostare/ottenere la modalità di sostituzione della gravità in un'area. Vedi AreaSpaceOverrideMode per i valori possibili. Il valore predefinito di questo parametro è AREA_SPACE_OVERRIDE_DISABLED.
AreaParameter AREA_PARAM_GRAVITY = 1
Costante per impostare/ottenere la forza di gravità in un'area. Il valore predefinito di questo parametro è 9.80665.
AreaParameter AREA_PARAM_GRAVITY_VECTOR = 2
Costante per impostare/ottenere il vettore/centro di gravità in un'area. Il valore predefinito di questo parametro è Vector2(0, -1).
AreaParameter AREA_PARAM_GRAVITY_IS_POINT = 3
Costante per impostare/ottenere se il vettore di gravità di un'area è una direzione oppure un punto centrale. Il valore predefinito di questo parametro è false.
AreaParameter AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE = 4
Costante per impostare/ottenere la distanza alla quale la forza di gravità è uguale alla gravità controllata da AREA_PARAM_GRAVITY. Ad esempio, su un pianeta con un raggio di 100 pixel, con una gravità superficiale di 4,0 px/s², imposta la gravità su 4,0 e la distanza unitaria su 100,0. La gravità avrà un calo secondo la legge dell'inverso del quadrato, quindi nell'esempio, a 200 pixel dal centro la gravità sarà 1,0 px/s² (il doppio della distanza, 1/4 della gravità), a 50 pixel sarà 16,0 px/s² (la metà della distanza, 4 volte la gravità) e così via.
Quanto sopra è vero solo quando la distanza unitaria è un numero positivo. Quando la distanza unitaria è impostata su 0,0, la gravità sarà costante a prescindere dalla distanza. Il valore predefinito di questo parametro è 0,0.
AreaParameter AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE = 5
Costante per impostare/ottenere la modalità di sostituzione dello smorzamento lineare in un'area. Vedi AreaSpaceOverrideMode per i valori possibili. Il valore predefinito di questo parametro è AREA_SPACE_OVERRIDE_DISABLED.
AreaParameter AREA_PARAM_LINEAR_DAMP = 6
Costante per impostare/ottenere il fattore di smorzamento lineare di un'area. Il valore predefinito di questo parametro è 0.1.
AreaParameter AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE = 7
Costante per impostare/ottenere la modalità di sostituzione dello smorzamento angolare in un'area. Vedi AreaSpaceOverrideMode per i valori possibili. Il valore predefinito di questo parametro è AREA_SPACE_OVERRIDE_DISABLED.
AreaParameter AREA_PARAM_ANGULAR_DAMP = 8
Costante per impostare/ottenere il fattore di smorzamento angolare di un'area. Il valore predefinito di questo parametro è 1.0.
AreaParameter AREA_PARAM_PRIORITY = 9
Costante per impostare/ottenere la priorità (l'ordine di elaborazione) di un'area. Il valore predefinito di questo parametro è 0.
enum AreaSpaceOverrideMode: 🔗
AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_DISABLED = 0
Questa area non influenza la gravità o lo smorzamento. Queste sono generalmente aree che esistono solo per rilevare collisioni e oggetti che entrano o escono da essa.
AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_COMBINE = 1
Questa area aggiunge i suoi valori di gravità e smorzamento a tutto ciò che è stato calcolato finora. In questo modo, molte aree sovrapposte possono combinare la loro fisica per creare effetti interessanti.
AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2
Questa area aggiunge i suoi valori di gravità e smorzamento a tutto ciò che è stato calcolato finora. Infine smette di tenere conto del resto delle aree, anche quella predefinita.
AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_REPLACE = 3
Quest'area sostituisce qualsiasi valore di gravità e smorzamento, anche quelli predefiniti, e smette di tenere conto delle altre aree.
AreaSpaceOverrideMode AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4
Quest'area sostituisce qualsiasi valore di gravità e smorzamento calcolato finora, ma continua a calcolare le altre aree, fino a quella predefinita.
enum BodyMode: 🔗
BodyMode BODY_MODE_STATIC = 0
Costante per i corpi statici. In questa modalità, un corpo può essere spostato solo dal codice utente e non entra in collisione con altri corpi lungo il suo percorso quando viene spostato.
BodyMode BODY_MODE_KINEMATIC = 1
Costante per i corpi cinematici. In questa modalità, un corpo può essere spostato solo dal codice utente ed entra in collisione con altri corpi lungo il suo percorso.
BodyMode BODY_MODE_RIGID = 2
Costante per i corpi rigidi. In questa modalità, un corpo può essere spinto da altri corpi e avere forze applicate.
BodyMode BODY_MODE_RIGID_LINEAR = 3
Costante per i corpi rigidi lineari. In questa modalità, un corpo non può ruotare e solo la sua velocità lineare è influenzata dalle forze esterne.
enum BodyParameter: 🔗
BodyParameter BODY_PARAM_BOUNCE = 0
Costante per impostare/ottenere il fattore di rimbalzo di un corpo. Il valore predefinito di questo parametro è 0.0.
BodyParameter BODY_PARAM_FRICTION = 1
Costante per impostare/ottenere l'attrito di un corpo. Il valore predefinito di questo parametro è 0.0.
BodyParameter BODY_PARAM_MASS = 2
Costante per impostare/ottenere la massa di un corpo. Il valore predefinito di questo parametro è 1.0. Se la modalità del corpo è impostata su BODY_MODE_RIGID, l'impostazione di questo parametro avrà i seguenti effetti aggiuntivi:
Se il parametro BODY_PARAM_CENTER_OF_MASS non è mai stato impostato esplicitamente, il valore di tale parametro verrà ricalcolato in base alle forme del corpo.
Se il parametro BODY_PARAM_INERTIA è impostato su un valore
<= 0.0, il valore di tale parametro verrà ricalcolato in base alle forme, alla massa e al centro di massa del corpo.
BodyParameter BODY_PARAM_INERTIA = 3
Costante per impostare/ottenere l'inerzia di un corpo. Il valore predefinito di questo parametro è 0.0. Se l'inerzia del corpo è impostata su un valore <= 0,0, l'inerzia verrà ricalcolata in base alle forme del corpo, alla massa e al centro di massa.
BodyParameter BODY_PARAM_CENTER_OF_MASS = 4
Costante per impostare/ottenere la posizione del centro di massa di un corpo nel sistema di coordinate locale del corpo. Il valore predefinito di questo parametro è Vector2(0,0). Se questo parametro non viene mai impostato esplicitamente, viene ricalcolato in base alle forme del corpo quando si imposta il parametro BODY_PARAM_MASS o quando viene chiamato body_set_space().
BodyParameter BODY_PARAM_GRAVITY_SCALE = 5
Costante per impostare/ottenere il moltiplicatore della gravità di un corpo. Il valore predefinito di questo parametro è 1.0.
BodyParameter BODY_PARAM_LINEAR_DAMP_MODE = 6
Costante per impostare/ottenere la modalità di smorzamento lineare di un corpo. Vedi BodyDampMode per i valori possibili. Il valore predefinito di questo parametro è BODY_DAMP_MODE_COMBINE.
BodyParameter BODY_PARAM_ANGULAR_DAMP_MODE = 7
Costante per impostare/ottenere la modalità di smorzamento angolare di un corpo. Vedi BodyDampMode per i valori possibili. Il valore predefinito di questo parametro è BODY_DAMP_MODE_COMBINE.
BodyParameter BODY_PARAM_LINEAR_DAMP = 8
Costante per impostare/ottenere il fattore di smorzamento lineare di un corpo. Il valore predefinito di questo parametro è 0.0.
BodyParameter BODY_PARAM_ANGULAR_DAMP = 9
Costante per impostare/ottenere il fattore di smorzamento angolare di un corpo. Il valore predefinito di questo parametro è 0.0.
BodyParameter BODY_PARAM_MAX = 10
Rappresenta la dimensione dell'enumerazione BodyParameter.
enum BodyDampMode: 🔗
BodyDampMode BODY_DAMP_MODE_COMBINE = 0
Il valore di smorzamento del corpo è aggiunto a qualsiasi valore impostato nelle aree o al valore predefinito.
BodyDampMode BODY_DAMP_MODE_REPLACE = 1
Il valore di smorzamento del corpo sostituisce qualsiasi valore impostato nelle aree o il valore predefinito.
enum BodyState: 🔗
BodyState BODY_STATE_TRANSFORM = 0
Costante per impostare/ottenere la matrice di trasformazione attuale di un corpo.
BodyState BODY_STATE_LINEAR_VELOCITY = 1
Costante per impostare/ottenere la velocità lineare attuale di un corpo.
BodyState BODY_STATE_ANGULAR_VELOCITY = 2
Costante per impostare/ottenere la velocità angolare attuale di un corpo.
BodyState BODY_STATE_SLEEPING = 3
Costante per cambiare lo stato di riposo di un corpo, oppure per ottenere se è in riposo.
BodyState BODY_STATE_CAN_SLEEP = 4
Costante per impostare/ottenere se il corpo può essere in riposo.
enum JointType: 🔗
JointType JOINT_TYPE_PIN = 0
Costante per creare giunti a perno.
JointType JOINT_TYPE_GROOVE = 1
Costante per creare giunti scanalati.
JointType JOINT_TYPE_DAMPED_SPRING = 2
Costante per creare giunti a molla smorzati.
JointType JOINT_TYPE_MAX = 3
Rappresenta la dimensione dell'enumerazione JointType.
enum JointParam: 🔗
JointParam JOINT_PARAM_BIAS = 0
Costante per impostare/ottenere la velocità con cui il giunto tira indietro i corpi per soddisfare il vincolo del giunto. Più basso è il valore, più i due corpi possono tirare sul giunto. Il valore predefinito di questo parametro è 0.0.
Nota: In Godot Physics, questo parametro è utilizzato solo per giunti a perno e giunti scanalati.
JointParam JOINT_PARAM_MAX_BIAS = 1
Costante per impostare/ottenere la velocità massima con cui il giunto può applicare correzioni. Il valore predefinito di questo parametro è 3.40282e+38.
Nota: In Godot Physics, questo parametro è utilizzato solo per i giunti scanalati.
JointParam JOINT_PARAM_MAX_FORCE = 2
Costante per impostare/ottenere la forza massima che il giunto può usare per agire sui due corpi. Il valore predefinito di questo parametro è 3.40282e+38.
Nota: In Godot Physics, questo parametro è usato solo per i giunti scanalati.
enum PinJointParam: 🔗
PinJointParam PIN_JOINT_SOFTNESS = 0
Costante per impostare/ottenere quanto è flessibile il legame del giunto a perno. Il valore predefinito di questo parametro è 0.0.
PinJointParam PIN_JOINT_LIMIT_UPPER = 1
La rotazione massima intorno al perno.
PinJointParam PIN_JOINT_LIMIT_LOWER = 2
La rotazione minima intorno al perno.
PinJointParam PIN_JOINT_MOTOR_TARGET_VELOCITY = 3
Velocità di destinazione per il motore. In radianti al secondo.
enum PinJointFlag: 🔗
PinJointFlag PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED = 0
Se true, il perno ha una rotazione massima e minima.
PinJointFlag PIN_JOINT_FLAG_MOTOR_ENABLED = 1
Se true, un motore gira il perno.
enum DampedSpringParam: 🔗
DampedSpringParam DAMPED_SPRING_REST_LENGTH = 0
Imposta la lunghezza di riposo del giunto a molla. Il giunto cercherà sempre di ritornare a questa lunghezza quando viene separato. Il valore predefinito di questo parametro è la distanza tra i punti di ancoraggio del giunto.
DampedSpringParam DAMPED_SPRING_STIFFNESS = 1
Imposta la rigidità del giunto a molla. Il giunto applica una forza pari alla rigidità moltiplicata per la distanza dalla sua lunghezza di riposo. Il valore predefinito di questo parametro è 20.0.
DampedSpringParam DAMPED_SPRING_DAMPING = 2
Imposta il rapporto di smorzamento del giunto a molla. Un valore pari a 0 indica una molla non smorzata, mentre 1 fa in modo che il sistema raggiunga l'equilibrio il più velocemente possibile (smorzamento critico). Il valore predefinito di questo parametro è 1.5.
enum CCDMode: 🔗
CCDMode CCD_MODE_DISABLED = 0
Disattiva il rilevamento continuo delle collisioni. Questo è il modo più veloce per rilevare le collisioni tra i corpi, ma può non rilevare gli oggetti piccoli e/o in rapido movimento.
CCDMode CCD_MODE_CAST_RAY = 1
Abilita il rilevamento continuo delle collisioni tramite la proiezione di raggi. È più veloce della proiezione di forme, ma meno preciso.
CCDMode CCD_MODE_CAST_SHAPE = 2
Abilita il rilevamento continuo delle collisioni tramite la proiezione di forme. È il metodo di rilevamento continuo più lento, e il più preciso.
enum AreaBodyStatus: 🔗
AreaBodyStatus AREA_BODY_ADDED = 0
Il valore del primo parametro e la funzione di callback dell'area ricevuti, quando un oggetto entra in una delle sue forme.
AreaBodyStatus AREA_BODY_REMOVED = 1
Il valore del primo parametro e la funzione di callback dell'area ricevuti, quando un oggetto esce da una delle sue forme.
enum ProcessInfo: 🔗
ProcessInfo INFO_ACTIVE_OBJECTS = 0
Costante per ottenere il numero di oggetti che non sono in riposo.
ProcessInfo INFO_COLLISION_PAIRS = 1
Costante per ottenere il numero di possibili collisioni.
ProcessInfo INFO_ISLAND_COUNT = 2
Costante per ottenere il numero di regioni nello spazio in cui si potrebbe verificare una collisione.
Descrizioni dei metodi
void area_add_shape(area: RID, shape: RID, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), disabled: bool = false) 🔗
Aggiunge una forma all'area, con la trasformazione locale specificata. La forma (insieme alle sue proprietà transform e disabled) è aggiunta a un array di forme e le forme di un'area sono solitamente referenziate dal loro indice in questo array.
void area_attach_canvas_instance_id(area: RID, id: int) 🔗
Collega l'ObjectID di un canvas all'area. Usa Object.get_instance_id() per ottenere l'ObjectID di un CanvasLayer.
void area_attach_object_instance_id(area: RID, id: int) 🔗
Collega l'ObjectID di un Object all'area. Usa Object.get_instance_id() per ottenere l'ObjectID di un CollisionObject2D.
void area_clear_shapes(area: RID) 🔗
Rimuove tutte le forme dall'area. Ciò non elimina le forme stesse, quindi è possibile utilizzarle altrove o aggiungerle nuovamente in seguito.
Crea un oggetto area 2D nel server di fisica e restituisce il RID che lo identifica. Le impostazioni predefinite per l'area creata includono gli strati e la maschera di collisione impostati su 1 e monitorable impostato su false.
Usa area_add_shape() per aggiungervi forme, usa area_set_transform() per impostarne la trasformazione e usa area_set_space() per aggiungere l'area a uno spazio. Se desideri che l'area sia rilevabile, usa area_set_monitorable().
int area_get_canvas_instance_id(area: RID) const 🔗
Restituisce l'ObjectID del canvas collegato all'area. Usa @GlobalScope.instance_from_id() per recuperare un CanvasLayer da un ObjectID diverso da zero.
int area_get_collision_layer(area: RID) const 🔗
Restituisce gli strati di fisica a cui l'area appartiene, come una bitmask.
int area_get_collision_mask(area: RID) const 🔗
Restituisce lo strato o gli strati di fisica con cui l'area può entrare in contatto, come maschera di bit.
int area_get_object_instance_id(area: RID) const 🔗
Restituisce l'ObjectID collegato all'area. Usa @GlobalScope.instance_from_id() per recuperare un Object da un ObjectID diverso da zero.
Variant area_get_param(area: RID, param: AreaParameter) const 🔗
Restituisce il valore del parametro specificato di area.
RID area_get_shape(area: RID, shape_idx: int) const 🔗
Restituisce il RID della forma con l'indice fornito nell'array di forme dell'area.
int area_get_shape_count(area: RID) const 🔗
Restituisce il numero di forme aggiunte all'area.
Transform2D area_get_shape_transform(area: RID, shape_idx: int) const 🔗
Restituisce la matrice di trasformazione locale della forma con l'indice fornito nell'array di forme dell'area.
RID area_get_space(area: RID) const 🔗
Restituisce il RID dello spazio assegnato all'area. Restituisce un RID vuoto se non è stato assegnato uno spazio.
Transform2D area_get_transform(area: RID) const 🔗
Restituisce la matrice di trasformazione dell'area.
void area_remove_shape(area: RID, shape_idx: int) 🔗
Rimuove la forma con l'indice specificato dall'array di forme dell'area. La forma stessa non viene eliminata, quindi può continuare a essere utilizzata altrove o aggiunta nuovamente in seguito. Come conseguenza di questa operazione, le forme dell'area che avevano gli indici superiori all'indice shape_idx avranno il loro indice diminuito di uno.
void area_set_area_monitor_callback(area: RID, callback: Callable) 🔗
Imposta il callback di monitoraggio aree dell'area. Questa callback sarà chiamata quando qualsiasi altra (forma di un') area entra o esce (da una forma di) l'area fornita, e deve prendere i seguenti cinque parametri:
un intero
status: o AREA_BODY_ADDED o AREA_BODY_REMOVED a seconda che la forma dell'altra area sia entrata o uscita dall'area,un RID
area_rid: il RID dell'altra area che è entrata o uscita dall'area,un intero
instance_id: l'ObjectIDassociato all'altra area,un intero
area_shape_idx: l'indice della forma dell'altra area che è entrata o uscita dall'area,un intero
self_shape_idx: l'indice della forma dell'area in cui l'altra area è entrata o uscita dall'area.
Contando (o tenendo traccia) delle forme che entrano ed escono, è possibile determinare se un'area (con tutte le sue forme) sta entrando per la prima volta o sta uscendo per l'ultima volta.
void area_set_collision_layer(area: RID, layer: int) 🔗
Assegna l'area a uno o più strati di fisica, tramite una maschera di bit.
void area_set_collision_mask(area: RID, mask: int) 🔗
Imposta quali strati di fisica saranno monitorati dall'area, tramite una maschera di bit.
void area_set_monitor_callback(area: RID, callback: Callable) 🔗
Imposta il callback di monitoraggio corpi dell'area. Questa callback sarà chiamata quando qualsiasi altra (forma di un) corpo entra o esce (da una forma di) il corpo fornito, e deve prendere i seguenti cinque parametri:
un intero
status: o AREA_BODY_ADDED o AREA_BODY_REMOVED a seconda che la forma dell'altro corpo sia entrata o uscita dall'area,un RID
body_rid: il RID del corpo che è entrato o uscito dall'area,un intero
instance_id: l'ObjectIDassociato al corpo,un intero
body_shape_idx: l'indice della forma dell'altra area che è entrata o uscita dall'area,un intero
self_shape_idx: l'indice della forma dell'area in cui il corpo è entrato o uscito.
Contando (o tenendo traccia) delle forme che entrano ed escono, è possibile determinare se un corpo (con tutte le sue forme) sta entrando per la prima volta o sta uscendo per l'ultima volta.
void area_set_monitorable(area: RID, monitorable: bool) 🔗
Imposta se l'area è monitorabile o meno. Se monitorable è true, il callback di monitoraggio aree di altre aree sarà chiamato quando questa area entra o esce da esse.
void area_set_param(area: RID, param: AreaParameter, value: Variant) 🔗
Imposta il valore del parametro specificato di area.
void area_set_shape(area: RID, shape_idx: int, shape: RID) 🔗
Sostituisce la forma dell'area all'indice specificato con un'altra forma, senza influenzare le proprietà transform e disabled allo stesso indice.
void area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool) 🔗
Imposta la proprietà per disabilitare la forma dell'area con l'indice specificato. Se disabled è true, la forma non rileverà altre forme che entrano o escono da essa.
void area_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D) 🔗
Imposta la matrice di trasformazione locale della forma dell'area con l'indice fornito.
void area_set_space(area: RID, space: RID) 🔗
Aggiunge l'area allo spazio specificato, dopo aver rimosso l'area dallo spazio assegnato in precedenza (se presente).
Nota: Per rimuovere un'area da uno spazio senza aggiungerla immediatamente altrove, utilizza PhysicsServer2D.area_set_space(area, RID()).
void area_set_transform(area: RID, transform: Transform2D) 🔗
Imposta la matrice di trasformazione dell'area.
void body_add_collision_exception(body: RID, excepted_body: RID) 🔗
Aggiunge excepted_body alla lista delle eccezioni di collisione del corpo, in modo che le collisioni con esso siano ignorate.
void body_add_constant_central_force(body: RID, force: Vector2) 🔗
Aggiunge una forza direzionale costante al corpo. La forza non influisce sulla rotazione. La forza rimane applicata nel tempo finché non viene cancellata con PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)).
Ciò equivale a usare body_add_constant_force() al centro di massa del corpo.
void body_add_constant_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗
Aggiunge una forza posizionata costante al corpo. La forza può influenzare la rotazione se position è diverso dal centro di massa del corpo. La forza rimane applicata nel tempo finché non viene cancellata con PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)).
position è lo scostamento dall'origine del corpo in coordinate globali.
void body_add_constant_torque(body: RID, torque: float) 🔗
Aggiunge una forza rotazionale costante al corpo. La forza non influenza la posizione. La forza rimane applicata nel tempo finché non viene cancellata con PhysicsServer2D.body_set_constant_torque(body, 0).
void body_add_shape(body: RID, shape: RID, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), disabled: bool = false) 🔗
Aggiunge una forma all'area, con la trasformazione locale specificata. La forma (insieme alle sue proprietà transform e disabled) è aggiunta a un array di forme, e le forme di un corpo sono solitamente referenziate dal loro indice in questo array.
void body_apply_central_force(body: RID, force: Vector2) 🔗
Applica una forza direzionale al corpo, al centro di massa del corpo. La forza non influenza la rotazione. Una forza è dipendente dal tempo e pensata per essere applicata a ogni aggiornamento della fisica.
Ciò equivale a usare body_apply_force() al centro di massa del corpo.
void body_apply_central_impulse(body: RID, impulse: Vector2) 🔗
Applica un impulso direzionale al corpo, al centro di massa del corpo. L'impulso non influisce sulla rotazione.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
Ciò equivale a usare body_apply_impulse() al centro di massa del corpo.
void body_apply_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0)) 🔗
Applica una forza posizionata al corpo. La forza può influenzare la rotazione se position è diverso dal centro di massa del corpo. Una forza è dipendente dal tempo e deve essere applicata a ogni aggiornamento della fisica.
position è lo scostamento dall'origine del corpo in coordinate globali.
void body_apply_impulse(body: RID, impulse: Vector2, position: Vector2 = Vector2(0, 0)) 🔗
Applica un impulso posizionato al corpo. L'impulso può influenzare la rotazione se position è diverso dal centro di massa del corpo.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
position è lo scostamento dall'origine del corpo in coordinate globali.
void body_apply_torque(body: RID, torque: float) 🔗
Applica una forza rotazionale al corpo. La forza non influenza la posizione. Una forza è dipendente dal tempo e pensata per essere applicata a ogni aggiornamento della fisica.
void body_apply_torque_impulse(body: RID, impulse: float) 🔗
Applica un impulso rotazionale al corpo. L'impulso non influenza la posizione.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in a una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
void body_attach_canvas_instance_id(body: RID, id: int) 🔗
Collega l'ObjectID di un canvas al corpo. Usa Object.get_instance_id() per ottenere l'ObjectID di un CanvasLayer.
void body_attach_object_instance_id(body: RID, id: int) 🔗
Collega l'ObjectID di un Object al corpo. Usa Object.get_instance_id() per ottenere l'ObjectID di un CollisionObject2D.
void body_clear_shapes(body: RID) 🔗
Rimuove tutte le forme dal corpo. Ciò non elimina le forme stesse, quindi è possibile utilizzarle altrove o aggiungerle nuovamente in seguito.
Crea un oggetto corpo 2D nel server di fisica e restituisce il RID che lo identifica. Le impostazioni predefinite per l'area creata includono gli strati e la maschera di collisione impostati su 1 e la modalità del corpo impostata su BODY_MODE_RIGID.
Usa body_add_shape() per aggiungervi forme, usa body_set_state() per impostarne la trasformazione e usa body_set_space() per aggiungere il corpo a uno spazio.
int body_get_canvas_instance_id(body: RID) const 🔗
Restituisce l'ObjectID del canvas collegato al corpo. Usa @GlobalScope.instance_from_id() per recuperare un CanvasLayer da un ObjectID diverso da zero.
int body_get_collision_layer(body: RID) const 🔗
Restituisce gli strati di fisica a cui il corpo appartiene, come una bitmask.
int body_get_collision_mask(body: RID) const 🔗
Restituisce lo strato o gli strati di fisica con cui il corpo può entrare in collisione, come maschera di bit.
float body_get_collision_priority(body: RID) const 🔗
Restituisce la priorità di collisione del corpo. È utilizzata nella fase di penetrazione di body_test_motion(). Maggiore è la priorità, minore sarà la penetrazione nel corpo.
Vector2 body_get_constant_force(body: RID) const 🔗
Restituisce la forza posizionale costante totale del corpo applicata durante ogni aggiornamento della fisica.
Vedi body_add_constant_force() e body_add_constant_central_force().
float body_get_constant_torque(body: RID) const 🔗
Restituisce la forza rotazionale costante totale del corpo applicata durante ogni aggiornamento della fisica.
Vedi body_add_constant_torque().
CCDMode body_get_continuous_collision_detection_mode(body: RID) const 🔗
Restituisce la modalità di rilevamento continuo delle collisioni del corpo.
PhysicsDirectBodyState2D body_get_direct_state(body: RID) 🔗
Restituisce il PhysicsDirectBodyState2D del corpo. Restituisce null se il corpo è distrutto o non assegnato a uno spazio.
int body_get_max_contacts_reported(body: RID) const 🔗
Restituisce il numero massimo di contatti che il corpo può riportare. Vedi body_set_max_contacts_reported().
BodyMode body_get_mode(body: RID) const 🔗
Restituisce la modalità del corpo.
int body_get_object_instance_id(body: RID) const 🔗
Restituisce l'ObjectID collegato al corpo. Usa @GlobalScope.instance_from_id() per recuperare un Object da un ObjectID diverso da zero.
Variant body_get_param(body: RID, param: BodyParameter) const 🔗
Restituisce il valore del parametro specificato di corpo.
RID body_get_shape(body: RID, shape_idx: int) const 🔗
Restituisce il RID della forma con l'indice fornito nell'array di forme del corpo.
int body_get_shape_count(body: RID) const 🔗
Restituisce il numero di forme aggiunte al corpo.
Transform2D body_get_shape_transform(body: RID, shape_idx: int) const 🔗
Restituisce la matrice di trasformazione locale della forma con l'indice fornito nell'array di forme dell'area.
RID body_get_space(body: RID) const 🔗
Restituisce il RID dello spazio assegnato al corpo. Restituisce un RID vuoto se non è stato assegnato uno spazio.
Variant body_get_state(body: RID, state: BodyState) const 🔗
Restituisce il valore dello stato specificato del corpo.
bool body_is_omitting_force_integration(body: RID) const 🔗
Restituisce true se il corpo omette l'integrazione predefinita delle forze. Vedi body_set_omit_force_integration().
void body_remove_collision_exception(body: RID, excepted_body: RID) 🔗
Rimuove excepted_body dalla lista delle eccezioni di collisione del corpo, in modo che le collisioni con esso non siano più ignorate.
void body_remove_shape(body: RID, shape_idx: int) 🔗
Rimuove la forma con l'indice specificato dall'array di forme del corpo. La forma stessa non viene eliminata, quindi può continuare a essere utilizzata altrove o aggiunta nuovamente in seguito. Come conseguenza di questa operazione, le forme del corpo che avevano gli indici superiori all'indice shape_idx avranno il loro indice diminuito di uno.
void body_reset_mass_properties(body: RID) 🔗
Ripristina l'inerzia e il centro di massa predefiniti del corpo in base alle sue forme. Ciò annulla tutti i valori personalizzati impostati in precedenza tramite body_set_param().
void body_set_axis_velocity(body: RID, axis_velocity: Vector2) 🔗
Modifica la velocità lineare del corpo in modo che la sua proiezione sull'asse axis_velocity.normalized() sia esattamente axis_velocity.length(). Ciò è utile per un comportamento di salto.
void body_set_collision_layer(body: RID, layer: int) 🔗
Imposta lo strato o gli strati di fisica a cui appartiene il corpo, tramite una maschera di bit.
void body_set_collision_mask(body: RID, mask: int) 🔗
Imposta lo strato o gli strati di fisica con cui il corpo può entrare in collisione, tramite una maschera di bit.
void body_set_collision_priority(body: RID, priority: float) 🔗
Imposta la priorità di collisione del corpo. Questa è utilizzata nella fase di depenetrazione in body_test_motion(). Maggiore è la priorità, minore sarà la penetrazione dentro il corpo.
void body_set_constant_force(body: RID, force: Vector2) 🔗
Imposta la forza posizionale costante totale del corpo, applicata durante ogni aggiornamento della fisica.
Vedi body_add_constant_force() e body_add_constant_central_force().
void body_set_constant_torque(body: RID, torque: float) 🔗
Imposta la forza rotazione costante totale del corpo, applicata durante ogni aggiornamento della fisica.
Vedi body_add_constant_torque().
void body_set_continuous_collision_detection_mode(body: RID, mode: CCDMode) 🔗
Imposta la modalità di rilevamento continuo delle collisioni.
Il rilevamento continuo delle collisioni cerca di prevedere dove un corpo in movimento entrerebbe in collisione tra gli aggiornamenti della fisica, invece di spostarlo e correggerne il movimento in caso di collisione.
void body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant = null) 🔗
Imposta la funzione di callback per l'integrazione personalizzata della forza del corpo su callable. Utilizza un Callable vuoto (Callable()) per cancellare il callback personalizzato.
La funzione callable sarà chiamata a ogni tick di fisica, prima dell'integrazione standard della forza (vedi body_set_omit_force_integration()). Può essere utilizzata, ad esempio, per aggiornare la velocità lineare e angolare del corpo in base al contatto con altri corpi.
Se userdata non è null, la funzione callable deve accettare i due parametri seguenti:
state: un PhysicsDirectBodyState2D utilizzato per recuperare e modificare lo stato del corpo,userdata: un Variant; il suo valore sarà l'userdatapassato in questo metodo.
Se userdata è null, allora callable deve accettare solo il parametro state.
void body_set_max_contacts_reported(body: RID, amount: int) 🔗
Imposta il numero massimo di contatti che il corpo può riportare. Se amount è maggiore di zero, il corpo terrà traccia al massimo questo numero di contatti con altri corpi.
void body_set_mode(body: RID, mode: BodyMode) 🔗
Imposta la modalità del corpo.
void body_set_omit_force_integration(body: RID, enable: bool) 🔗
Imposta se il corpo omette l'integrazione standard della forza. Se enable è true, il corpo non utilizzerà automaticamente le forze, le coppie e lo smorzamento applicati per aggiornare la velocità lineare e angolare del corpo. In questo caso, è possibile utilizzare body_set_force_integration_callback() per aggiornare manualmente la velocità lineare e angolare.
Questo metodo viene chiamato quando la proprietà RigidBody2D.custom_integrator viene impostata.
void body_set_param(body: RID, param: BodyParameter, value: Variant) 🔗
Imposta il valore del parametro specificato di corpo.
void body_set_shape(body: RID, shape_idx: int, shape: RID) 🔗
Sostituisce la forma del corpo all'indice specificato con un'altra forma, senza influenzare le proprietà transform, disabled e one-way collision allo stesso indice.
void body_set_shape_as_one_way_collision(body: RID, shape_idx: int, enable: bool, margin: float, direction: Vector2 = Vector2(0, 1)) 🔗
Sets the one-way collision properties of the body's shape with the given index. If enable is true, the one-way collision direction given by direction in the shape's local space (that is body_get_shape_transform(body, shape_idx).basis_xform(direction).normalized() in the body's local space) will be used to ignore collisions with the shape in the opposite direction, and to ensure depenetration of kinematic bodies happens in this direction.
void body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool) 🔗
Imposta la proprietà per disabilitare la forma con l'indice specificato del corpo. Se disabled è true, la forma sarà ignorata in tutti i rilevamenti di collisione.
void body_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D) 🔗
Imposta la matrice di trasformazione locale della forma con l'indice fornito del corpo.
void body_set_space(body: RID, space: RID) 🔗
Aggiunge il corpo allo spazio fornito, dopo averlo rimosso dallo spazio assegnato in precedenza (se presente). Se la modalità del corpo è impostata su BODY_MODE_RIGID, l'aggiunta del corpo a uno spazio avrà i seguenti effetti aggiuntivi:
Se il parametro BODY_PARAM_CENTER_OF_MASS non è mai stato impostato esplicitamente, il valore di tale parametro verrà ricalcolato in base alle forme del corpo.
Se il parametro BODY_PARAM_INERTIA è impostato su un valore
<= 0.0, il valore di tale parametro verrà ricalcolato in base alle forme, alla massa e al centro di massa del corpo.
Nota: Per rimuovere un corpo da uno spazio senza aggiungerlo immediatamente altrove, utilizza PhysicsServer2D.body_set_space(body, RID()).
void body_set_state(body: RID, state: BodyState, value: Variant) 🔗
Imposta il valore dello stato di un corpo.
Nota: Il cambio di stato non ha un effetto immediato. Lo stato cambierà nel prossimo frame di fisica.
void body_set_state_sync_callback(body: RID, callable: Callable) 🔗
Imposta la funzione di callback per la sincronizzazione dello stato del corpo su callable. Utilizza un Callable vuoto (Callable()) per cancellare il callback.
La funzione callable verrà chiamata a ogni frame di fisica, supponendo che il corpo fosse attivo durante il tick di fisica precedente, e può essere utilizzata per recuperare lo stato più recente dal server di fisica.
La funzione callable deve accettare i seguenti parametri:
state: un PhysicsDirectBodyState2D, utilizzato per recuperare lo stato del corpo.
bool body_test_motion(body: RID, parameters: PhysicsTestMotionParameters2D, result: PhysicsTestMotionResult2D = null) 🔗
Restituisce true se si verificherebbe una collisione spostando il corpo lungo un vettore di movimento da un punto specificato nello spazio. Vedi PhysicsTestMotionParameters2D per i parametri di movimento disponibili. Facoltativamente, è possibile passare un oggetto PhysicsTestMotionResult2D, che verrà usato per memorizzare le informazioni sulla collisione risultante.
Crea una forma di capsula 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare l'altezza e il raggio della capsula.
Crea una forma di cerchio 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare il raggio del cerchio.
RID concave_polygon_shape_create() 🔗
Crea una forma di poligono concavo 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare il segmenti del poligono concavo.
RID convex_polygon_shape_create() 🔗
Crea una forma di poligono convesso 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare i punti del poligono convesso.
float damped_spring_joint_get_param(joint: RID, param: DampedSpringParam) const 🔗
Restituisce il valore del parametro specificato di giunto a molla smorzata.
void damped_spring_joint_set_param(joint: RID, param: DampedSpringParam, value: float) 🔗
Imposta il valore del parametro specificato di giunto a molla smorzata.
Distrugge uno qualsiasi degli oggetti creati dal PhysicsServer2D. Se il RID passato non è uno degli oggetti che possono essere creati dal PhysicsServer2D, un errore verrà stampato sulla console.
int get_process_info(process_info: ProcessInfo) 🔗
Restituisce il valore di uno stato del motore di fisica specificato da process_info.
void joint_clear(joint: RID) 🔗
Distrugge il giunto con il RID specificato, crea un nuovo giunto non inizializzato e fa in modo che il RID si riferisca a questo nuovo giunto.
Crea un giunto 2D nel server di fisica e restituisce il RID che lo identifica. Per impostare il tipo di giunto, usa joint_make_damped_spring(), joint_make_groove() o joint_make_pin(). Usa joint_set_param() per impostare i parametri generici del giunto.
void joint_disable_collisions_between_bodies(joint: RID, disable: bool) 🔗
Imposta se i corpi attaccati al Joint2D entreranno in collisione tra loro.
float joint_get_param(joint: RID, param: JointParam) const 🔗
Restituisce il valore del parametro specificato di giunto.
JointType joint_get_type(joint: RID) const 🔗
Restituisce il tipo del giunto.
bool joint_is_disabled_collisions_between_bodies(joint: RID) const 🔗
Restituisce se i corpi attaccati al Joint2D entreranno in collisione tra loro.
void joint_make_damped_spring(joint: RID, anchor_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID = RID()) 🔗
Rende il giunto un giunto a molla smorzata, fissato al punto anchor_a (indicato in coordinate globali) sul corpo body_a e al punto anchor_b (indicato in coordinate globali) sul corpo body_b. Per impostare i parametri specifici della molla smorzata, vedi damped_spring_joint_set_param().
void joint_make_groove(joint: RID, groove1_a: Vector2, groove2_a: Vector2, anchor_b: Vector2, body_a: RID = RID(), body_b: RID = RID()) 🔗
Rende il giunto un giunto scanalato.
void joint_make_pin(joint: RID, anchor: Vector2, body_a: RID, body_b: RID = RID()) 🔗
Rende il giunto un giunto a perno. Se body_b è un RID vuoto, allora body_a è bloccato al punto anchor (specificato in coordinate globali); altrimenti, body_a è bloccato a body_b nel punto anchor (specificato in coordinate globali). Per impostare i parametri specifici del giunto a perno, vedi pin_joint_set_param().
void joint_set_param(joint: RID, param: JointParam, value: float) 🔗
Imposta il valore del parametro specificato di giunto.
bool pin_joint_get_flag(joint: RID, flag: PinJointFlag) const 🔗
Ottiene un flag di un giunto a perno.
float pin_joint_get_param(joint: RID, param: PinJointParam) const 🔗
Restituisce il valore di un parametro di un giunto a perno.
void pin_joint_set_flag(joint: RID, flag: PinJointFlag, enabled: bool) 🔗
Imposta un flag di un giunto a perno.
void pin_joint_set_param(joint: RID, param: PinJointParam, value: float) 🔗
Imposta un parametro di un giunto a perno.
RID rectangle_shape_create() 🔗
Crea una forma di rettangolo 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare le mezze estensioni del rettangolo.
Crea una forma di segmento 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare i punti di inizio e fine del segmento.
RID separation_ray_shape_create() 🔗
Crea una forma di raggio di separazione 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare le proprietà length e slide_on_slope della forma.
void set_active(active: bool) 🔗
Attiva o disattiva il server di fisica 2D. Se active è false, il server di fisica non farà nulla nel suo passaggio di fisica.
Variant shape_get_data(shape: RID) const 🔗
Restituisce i dati di forma che definiscono la configurazione della forma, come le mezze estensioni di un rettangolo o i segmenti di una forma concava. Vedi shape_set_data() per il formato preciso di questi dati in ogni caso.
ShapeType shape_get_type(shape: RID) const 🔗
Restituisce il tipo della forma.
void shape_set_data(shape: RID, data: Variant) 🔗
Imposta i dati della forma che definiscono la configurazione della forma. I data da passare dipendono dal tipo di forma (vedere shape_get_type()):
SHAPE_WORLD_BOUNDARY: un array di lunghezza due contenente una direzione Vector2
normale una distanza floatd,SHAPE_SEPARATION_RAY: un dizionario contenente la chiave
lengthcon un valore float e la chiaveslide_on_slopecon un valore bool,SHAPE_SEGMENT: un Rect2
rectcontenente il primo punto del segmento inrect.positione il secondo punto del segmento inrect.size,SHAPE_CIRCLE: un float
radius,SHAPE_RECTANGLE: un Vector2
half_extents,SHAPE_CAPSULE: un array di lunghezza due (o un Vector2) contenente un float
heighte un floatradius,SHAPE_CONVEX_POLYGON: un PackedVector2Array di punti che definiscono un poligono convesso in ordine antiorario (la normale esterna in senso orario di ogni segmento formato da punti consecutivi è calcolata internamente), oppure un PackedFloat32Array di lunghezza divisibile per quattro in modo che ogni 4-tupla di float contenga le coordinate di un punto, seguite dalle coordinate del vettore normale esterno in senso orario al segmento tra il punto attuale e il punto successivo,
SHAPE_CONCAVE_POLYGON: un PackedVector2Array di lunghezza divisibile per due (ciascuno coppia di punti forma un segmento).
Attenzione: Nel caso di SHAPE_CONVEX_POLYGON, questo metodo non verifica se i punti forniti formano effettivamente un poligono convesso (a differenza della proprietà CollisionPolygon2D.polygon).
Crea uno spazio 2D nel server di fisica e restituisce il RID che lo identifica. Uno spazio contiene corpi e aree e controlla l'avanzamento della simulazione fisica degli oggetti contenuti in esso.
PhysicsDirectSpaceState2D space_get_direct_state(space: RID) 🔗
Restituisce lo stato di uno spazio, un PhysicsDirectSpaceState2D. Questo oggetto può essere utilizzato per richieste di collisione o intersezione.
float space_get_param(space: RID, param: SpaceParameter) const 🔗
Restituisce il valore del parametro specificato di spazio.
bool space_is_active(space: RID) const 🔗
Restituisce true se lo spazio è attivo.
void space_set_active(space: RID, active: bool) 🔗
Attiva o disattiva lo spazio. Se active è false, il server di fisica non farà nulla con questo spazio nel suo passaggio di fisica.
void space_set_param(space: RID, param: SpaceParameter, value: float) 🔗
Imposta il valore del parametro specificato di spazio.
RID world_boundary_shape_create() 🔗
Crea una forma di confine del mondo 2D nel server di fisica e restituisce il RID che la identifica. Usa shape_set_data() per impostare le proprietà di direzione normale e distanza della forma.