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

Hérite de : CollisionObject2D < Node2D < CanvasItem < Node < Object

Hérité par : CharacterBody2D, RigidBody2D, StaticBody2D

Classe de base abstraite pour les objets du jeu 2D affectés par la physique.

Description

PhysicsBody2D est une classe de base abstraite pour les objets du jeu 2D affectés par la physique. Tous les corps physiques 2D héritent de lui.

Tutoriels

Propriétés

bool

input_pickable

false (overrides CollisionObject2D)

Méthodes

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)


Descriptions des méthodes

void add_collision_exception_with(body: Node) 🔗

Ajoute un corps à la liste des corps avec lesquels ce corps ne peut entrer en collision.


Array[PhysicsBody2D] get_collision_exceptions() 🔗

Renvoie un tableau de nœuds qui ont été ajoutés comme exceptions de collision pour ce corps.


Vector2 get_gravity() const 🔗

Renvoie le vecteur de gravité calculé à partir de toutes les sources qui peuvent affecter le corps, y compris toutes les redéfinitions de gravité des nœuds Area2D et la gravité du monde globale.


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

Déplace le corps le long du vecteur de mouvement motion. Afin d'être indépendant du taux de rafraichissement dans Node._physics_process() ou Node._process(), motion doit être calculé en utilisant delta.

Renvoie un KinematicCollision2D, qui contient des informations sur la collision lorsque le corps est arrêté, ou lorsqu'il touche un autre corps durant le mouvement.

Si test_only vaut true, le corps ne se déplace pas, mais les informations de collision potentielles sont données.

safe_margin est la marge supplémentaire utilisée pour le redressement de collision (voir CharacterBody2D.safe_margin pour plus de détails).

Si recovery_as_collision vaut true, toute dépénétration de la phase de redressement est également signalée comme une collision, c'est utilisé par ex. par CharacterBody2D pour améliorer la détection du sol lors de l’aimantation au sol.


void remove_collision_exception_with(body: Node) 🔗

Retire un corps de la liste des corps avec lesquels ce corps ne peut entrer en collision.


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

Vérifie les collisions sans déplacer le corps. Afin d'être indépendant du taux de rafraichissement dans Node._physics_process() ou Node._process(), motion devrait être calculé en utilisant delta.

Définit virtuellement la position, l'échelle et la rotation du nœud à celle de la Transform2D donnée, puis tente de déplacer le corps le long du vecteur motion. Renvoie true si une collision empêcherait le corps de se déplacer sur tout le chemin.

collision est un objet optionnel de type KinematicCollision2D, qui contient des informations supplémentaires sur la collision lorsqu'il est arrêté, ou lorsqu'il touche un autre corps le long du mouvement.

safe_margin est la marge supplémentaire utilisée pour le redressement de collision (voir CharacterBody2D.safe_margin pour plus de détails).

Si recovery_as_collision est true, toute dépénétration lors de la phase de redressement est également signalée comme une collision, cela est utile pour vérifier si le corps toucherait n'importe quel autre corps.