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...
PhysicsDirectSpaceState2D
Hérite de : Object
Hérité par : PhysicsDirectSpaceState2DExtension
Fournit un accès direct à un espace physique dans le PhysicsServer2D.
Description
Fournit un accès direct à un espace physique dans le PhysicsServer2D. Il est utilisé principalement pour faire des requêtes contre des objets et des zones résidant dans un espace donné.
Note : Cette classe n'est pas destinée à être instanciée. Utilisez World2D.direct_space_state pour obtenir l'état de l'espace 2D physique du monde.
Tutoriels
Méthodes
cast_motion(parameters: PhysicsShapeQueryParameters2D) |
|
collide_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) |
|
get_rest_info(parameters: PhysicsShapeQueryParameters2D) |
|
intersect_point(parameters: PhysicsPointQueryParameters2D, max_results: int = 32) |
|
intersect_ray(parameters: PhysicsRayQueryParameters2D) |
|
intersect_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) |
Descriptions des méthodes
PackedFloat32Array cast_motion(parameters: PhysicsShapeQueryParameters2D) 🔗
Vérifie jusqu'où une Shape2D peut se déplacer sans entrer en collision. Tous les paramètres de la requête, y compris la forme et le mouvement, sont fournis par un objet PhysicsShapeQueryParameters2D.
Renvoie un tableau avec les proportions sûres et dangereuses (entre 0 et 1) du mouvement. La proportion sûre est la fraction maximale du mouvement qui peut être effectué sans collision. La proportion dangereuse est la fraction minimale de la distance dont l'objet doit se déplacer pour entrer en collision. Si aucune collision n'est détectée, un résultat de [1.0, 1.0] sera renvoyé.
Note : Toute Shape2D avec laquelle la forme est déjà en collision, par exemple à l'intérieur, sera ignorée. Utilisez collide_shape() pour déterminer les Shape2Ds avec lesquelles la forme est déjà en collision.
Array[Vector2] collide_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) 🔗
Vérifie les intersections d'une forme, donnée à travers un objet PhysicsShapeQueryParameters2D, contre l'espace. Le tableau résultant contient une liste de points où la forme en intersecte une autre. Comme avec intersect_shape(), le nombre de résultats renvoyés peut être limité pour gagner du temps de traitement.
Les points renvoyés sont une liste de paires de points de contact. Pour chaque paire, la premier est dans la forme passée dans l'objet PhysicsShapeQueryParameters2D, le deuxième est dans la forme en collision de l'espace physique.
Dictionary get_rest_info(parameters: PhysicsShapeQueryParameters2D) 🔗
Vérifie les intersections d'une forme, donnée avec un objet PhysicsShapeQueryParameters2D, contre l'espace. Si elle entre en collision avec plus d'une forme, la plus proche est sélectionnée. L'objet renvoyé est un dictionnaire contenant les champs suivants :
collider_id : L'identifiant de l'objet en collision.
linear_velocity : La vitesse de l'objet en collision en tant que Vector2. Si l'objet est une Area2D, le résultat est (0, 0).
normal : La normale de collision de la forme de la requête au point d'intersection, pointant hors de l'objet en intersection.
point : Le point d'intersection.
rid : Le RID de l’objet en intersection.
shape : L'indice de forme de la forme en collision.
Si la forme n'intersecte rien, alors un dictionnaire vide est renvoyé à la place.
Array[Dictionary] intersect_point(parameters: PhysicsPointQueryParameters2D, max_results: int = 32) 🔗
Vérifie si un point est à l'intérieur d'au moins une forme solide. La position et les autres paramètres sont définis par PhysicsPointQueryParameters2D. Les formes dans lesquelles se trouve le point sont renvoyées dans un tableau contenant des dictionnaires avec les champs suivants :
collider : L'objet en collision.
collider_id : L'ID de l'objet en collision.
rid : Le RID de l'objet en intersection.
shape : L'indice de forme de la forme en collision.
Le nombre d'intersections peut être limité avec le paramètre max_results, pour réduire le temps de traitement.
Note : Les ConcavePolygonShape2Ds et les CollisionPolygon2Ds dans le mode de construction Segments ne sont pas des formes solides. Par conséquent, elles ne seront pas détectées.
Dictionary intersect_ray(parameters: PhysicsRayQueryParameters2D) 🔗
Intersecte un rayon dans un espace donné. La position du rayon et les autres paramètres sont définis par PhysicsRayQueryParameters2D. L'objet renvoyé est un dictionnaire avec les champs suivants :
collider : L'objet en collision.
collider_id : L'ID de l'objet en collision.
normal : La normale de surface de l'objet au point d'intersection, ou Vector2(0, 0) si le rayon commence à l'intérieur de la forme et PhysicsRayQueryParameters2D.hit_from_inside vaut true.
position : Le point intersectant.
rid : Le RID de l'objet intersectant.
shape : L'indice de forme de la forme en collision.
Si le rayon n'a rien intersecté, un dictionnaire vide est renvoyé à la place.
Array[Dictionary] intersect_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) 🔗
Vérifie les intersections d'une forme, donnée avec un objet PhysicsShapeQueryParameters2D, contre l'espace. Les formes intersectées sont renvoyées dans un tableau contenant des dictionnaires avec les champs suivants :
collider : L'objet en collision.
collider_id : L'ID de l'objet en collision.
rid : Le RID de l'objet en intersection.
shape : L'indice de forme de la forme en collision.
Le nombre d'intersections peut être limité avec le paramètre max_results, pour réduire le temps de traitement.