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.

PhysicsBody2D

Eredita: CollisionObject2D < Node2D < CanvasItem < Node < Object

Ereditato da: CharacterBody2D, RigidBody2D, StaticBody2D

Classe di base astratta per gli oggetti di gioco 2D influenzati dalla fisica.

Descrizione

PhysicsBody2D è una classe di base astratta per gli oggetti di gioco 2D influenzati dalla fisica. Tutti i corpi fisici 2D ereditano da essa.

Tutorial

Proprietà

bool

input_pickable

false (overrides CollisionObject2D)

Metodi

void

add_collision_exception_with(body: Node)

Array[PhysicsBody2D]

get_collision_exceptions()

Vector2

get_gravity() const

KinematicCollision2D

move_and_collide(motion: Vector2, test_only: bool = false, safe_margin: float = 0.08, recovery_as_collision: bool = false)

void

remove_collision_exception_with(body: Node)

bool

test_move(from: Transform2D, motion: Vector2, collision: KinematicCollision2D = null, safe_margin: float = 0.08, recovery_as_collision: bool = false)


Descrizioni dei metodi

void add_collision_exception_with(body: Node) 🔗

Aggiunge un corpo alla lista dei corpi con cui questo corpo non può entrare in collisione.


Array[PhysicsBody2D] get_collision_exceptions() 🔗

Restituisce un array di nodi aggiunti come eccezioni di collisione per questo corpo.


Vector2 get_gravity() const 🔗

Restituisce il vettore di gravità calcolato da tutte le fonti che possono influenzare il corpo, inclusi tutte le sostituzioni di gravità dai nodi Area2D e la gravità del mondo globale.


KinematicCollision2D move_and_collide(motion: Vector2, test_only: bool = false, safe_margin: float = 0.08, recovery_as_collision: bool = false) 🔗

Sposta il corpo lungo il vettore motion. Per essere indipendente dal frame rate in Node._physics_process() o Node._process(), motion deve essere calcolato usando delta.

Restituisce un KinematicCollision2D, che contiene informazioni sulla collisione quando si ferma o quando si scontra con un altro corpo lungo il movimento.

Se test_only è true, il corpo non si muove ma sono restituite le informazioni sulla potenziale collisione.

safe_margin è il margine aggiuntivo usato per il recupero della collisione (vedi CharacterBody2D.safe_margin per maggiori dettagli).

Se recovery_as_collision è true, qualsiasi penetrazione dalla fase di recupero è segnalata come collisione; questo è utilizzato ad esempio da CharacterBody2D per rilevare meglio il pavimento durante l'aggancio sul pavimento.


void remove_collision_exception_with(body: Node) 🔗

Rimuove un corpo dalla lista dei corpi con cui questo corpo non può entrare in collisione.


bool test_move(from: Transform2D, motion: Vector2, collision: KinematicCollision2D = null, safe_margin: float = 0.08, recovery_as_collision: bool = false) 🔗

Controlla le collisioni senza muovere il corpo. Per essere indipendente dal frame rate in Node._physics_process() o Node._process(), motion deve essere calcolato usando delta.

Imposta virtualmente la posizione, la scala e la rotazione del nodo su quelle del Transform2D fornito, quindi prova a muovere il corpo lungo il vettore motion. Restituisce true se una collisione impedirebbe al corpo di muoversi lungo l'intero percorso.

collision è un oggetto facoltativo di tipo KinematicCollision2D, che contiene ulteriori informazioni sulla collisione quando si ferma o quando si scontra con un altro corpo lungo il movimento.

safe_margin è il margine aggiuntivo usato per il recupero della collisione (vedi CharacterBody2D.safe_margin per maggiori dettagli).

Se recovery_as_collision è true, anche qualsiasi penetrazione dalla fase di recupero è segnalata come collisione; ciò è utile per verificare se il corpo si scontrerebbe con altri corpi.