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...
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
input_pickable |
|
Méthodes
void |
add_collision_exception_with(body: Node) |
get_gravity() const |
|
move_and_collide(motion: Vector2, test_only: bool = false, safe_margin: float = 0.08, recovery_as_collision: bool = false) |
|
void |
|
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.
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.