:github_url: hide .. _class_PhysicsBody2D: PhysicsBody2D ============= **Hérite de :** :ref:`CollisionObject2D` **<** :ref:`Node2D` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Hérité par :** :ref:`CharacterBody2D`, :ref:`RigidBody2D`, :ref:`StaticBody2D` Classe de base abstraite pour les objets du jeu 2D affectés par la physique. .. rst-class:: classref-introduction-group 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. .. rst-class:: classref-introduction-group Tutoriels ------------------ - :doc:`Introduction à la physique <../tutorials/physics/physics_introduction>` - :doc:`Dépanner des problèmes de physique <../tutorials/physics/troubleshooting_physics_issues>` .. rst-class:: classref-reftable-group Propriétés -------------------- .. table:: :widths: auto +-------------------------+----------------+-------------------------------------------------------------------------------------------------+ | :ref:`bool` | input_pickable | ``false`` (overrides :ref:`CollisionObject2D`) | +-------------------------+----------------+-------------------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Méthodes ---------------- .. table:: :widths: auto +------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_collision_exception_with`\ (\ body\: :ref:`Node`\ ) | +------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`PhysicsBody2D`\] | :ref:`get_collision_exceptions`\ (\ ) | +------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_gravity`\ (\ ) |const| | +------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`KinematicCollision2D` | :ref:`move_and_collide`\ (\ motion\: :ref:`Vector2`, test_only\: :ref:`bool` = false, safe_margin\: :ref:`float` = 0.08, recovery_as_collision\: :ref:`bool` = false\ ) | +------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`remove_collision_exception_with`\ (\ body\: :ref:`Node`\ ) | +------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`test_move`\ (\ from\: :ref:`Transform2D`, motion\: :ref:`Vector2`, collision\: :ref:`KinematicCollision2D` = null, safe_margin\: :ref:`float` = 0.08, recovery_as_collision\: :ref:`bool` = false\ ) | +------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descriptions des méthodes -------------------------------------------------- .. _class_PhysicsBody2D_method_add_collision_exception_with: .. rst-class:: classref-method |void| **add_collision_exception_with**\ (\ body\: :ref:`Node`\ ) :ref:`🔗` Ajoute un corps à la liste des corps avec lesquels ce corps ne peut entrer en collision. .. rst-class:: classref-item-separator ---- .. _class_PhysicsBody2D_method_get_collision_exceptions: .. rst-class:: classref-method :ref:`Array`\[:ref:`PhysicsBody2D`\] **get_collision_exceptions**\ (\ ) :ref:`🔗` Renvoie un tableau de nœuds qui ont été ajoutés comme exceptions de collision pour ce corps. .. rst-class:: classref-item-separator ---- .. _class_PhysicsBody2D_method_get_gravity: .. rst-class:: classref-method :ref:`Vector2` **get_gravity**\ (\ ) |const| :ref:`🔗` 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 :ref:`Area2D` et la gravité du monde globale. .. rst-class:: classref-item-separator ---- .. _class_PhysicsBody2D_method_move_and_collide: .. rst-class:: classref-method :ref:`KinematicCollision2D` **move_and_collide**\ (\ motion\: :ref:`Vector2`, test_only\: :ref:`bool` = false, safe_margin\: :ref:`float` = 0.08, recovery_as_collision\: :ref:`bool` = false\ ) :ref:`🔗` Déplace le corps le long du vecteur de mouvement ``motion``. Afin d'être indépendant du taux de rafraichissement dans :ref:`Node._physics_process()` ou :ref:`Node._process()`, ``motion`` doit être calculé en utilisant ``delta``. Renvoie un :ref:`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 :ref:`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 :ref:`CharacterBody2D` pour améliorer la détection du sol lors de l’aimantation au sol. .. rst-class:: classref-item-separator ---- .. _class_PhysicsBody2D_method_remove_collision_exception_with: .. rst-class:: classref-method |void| **remove_collision_exception_with**\ (\ body\: :ref:`Node`\ ) :ref:`🔗` Retire un corps de la liste des corps avec lesquels ce corps ne peut entrer en collision. .. rst-class:: classref-item-separator ---- .. _class_PhysicsBody2D_method_test_move: .. rst-class:: classref-method :ref:`bool` **test_move**\ (\ from\: :ref:`Transform2D`, motion\: :ref:`Vector2`, collision\: :ref:`KinematicCollision2D` = null, safe_margin\: :ref:`float` = 0.08, recovery_as_collision\: :ref:`bool` = false\ ) :ref:`🔗` Vérifie les collisions sans déplacer le corps. Afin d'être indépendant du taux de rafraichissement dans :ref:`Node._physics_process()` ou :ref:`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 :ref:`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 :ref:`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 :ref:`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. .. |virtual| replace:: :abbr:`virtual (Cette méthode doit typiquement être redéfinie par l'utilisateur pour avoir un effet.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Cette méthode n'a pas d'effets de bord. Elle ne modifie aucune des variables membres de l'instance.)` .. |vararg| replace:: :abbr:`vararg (Cette méthode accepte n'importe quel nombre d'arguments après ceux décris ici.)` .. |constructor| replace:: :abbr:`constructor (Cette méthode est utilisée pour construire un type.)` .. |static| replace:: :abbr:`static (Cette méthode n'a pas besoin d'instance pour être appelée, elle peut donc être directement appelée en utilisant le nom de la classe.)` .. |operator| replace:: :abbr:`operator (Cette méthode décrit un opérateur valide à utiliser avec ce type en tant qu'opérande gauche.)` .. |bitfield| replace:: :abbr:`BitField (Cette valeur est un nombre entier composé d'un masque de bits des options suivantes.)` .. |void| replace:: :abbr:`void (Aucune valeur de retour.)`