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...
CollisionObject2D
Hérite de : Node2D < CanvasItem < Node < Object
Hérité par : Area2D, PhysicsBody2D
Classe de base abstraite pour les objets physiques 2D.
Description
Classe de base abstraite pour les objets physiques 2D. CollisionObject2D peut contenir n'importe quel nombre de Shape2D pour les collisions. Chaque forme doit être attribuée à un propriétaire de forme. Les propriétaires de forme ne sont pas des nœuds et ne figurent pas dans l'éditeur, mais sont accessibles via le code en utilisant les méthodes shape_owner_*.
Note : Seules les collisions entre des objets dans le même caneveas (Viewport ou CanvasLayer) sont supportées. Le comportement des collisions entre des objets dans différents canevas est indéfini.
Propriétés
|
||
|
||
|
||
|
||
|
Méthodes
Signaux
input_event(viewport: Node, event: InputEvent, shape_idx: int) 🔗
Émis lorsqu'un événement d'entrée se produit. Nécessite input_pickable de valoir true et au moins un des bits de collision_layer d'être défini. Voir _input_event() pour plus de détails.
mouse_entered() 🔗
Émis lorsque le pointeur de la souris entre dans l'une des formes de cet objet. Nécessite que input_pickable vaille true et au moins un bit de collision_layer de défini. Notez que le déplacement entre différentes formes dans un seul CollisionObject2D ne fera pas émettre ce signal.
Note : En raison du manque de détection de collision continue, ce signal peut ne pas être émis dans l'ordre prévu si la souris se déplace assez rapidement et que la zone du CollisionObject2D est petite. Ce signal peut aussi ne pas être émis si un autre CollisionObject2D recouvre le CollisionObject2D en question.
mouse_exited() 🔗
Émis lorsque le pointeur de la souris sort de toutes les formes de cet objet. Nécessite que input_pickable vaille true et au moins qu'un bit de collision_layer soit défini. Notez que se déplacer entre deux formes différentes dans un unique CollisionObject2D ne causera pas à ce signal d'être émis.
Note : En raison de l'absence de détection de collision continue, ce signal peut ne pas être émis dans l'ordre prévu si la souris se déplace assez vite et que la zone du CollisionObject2D est petite. Ce signal peut aussi ne pas être émis si un autre CollisionObject2D chevauche le CollisionObject2D en question.
mouse_shape_entered(shape_idx: int) 🔗
Émis lorsque le curseur de la souris entre dans l'une des formes de cet objet ou se déplace d'une forme à l'autre. shape_idx est l'index d'enfant de la Shape2D nouvellement entrée. Nécessite que input_pickable vaille true et au moins un des bits de collision_layer d'être défini.
mouse_shape_exited(shape_idx: int) 🔗
Émis lorsque le curseur de la souris entre dans l'une des formes de l'objet. shape_idx est l'index de l'enfant du Shape2D sorti. Nécessite que input_pickable vaille true et au moins un des bits de collision_layer d'être défini.
Énumérations
enum DisableMode: 🔗
DisableMode DISABLE_MODE_REMOVE = 0
Quand Node.process_mode est défini à Node.PROCESS_MODE_DISABLED, le retirer de la simulation physique pour arrêter toutes les interactions physiques avec ce CollisionObject2D.
Ré-ajouté automatiquement à la simulation physique lorsque le Node est de nouveau traité.
DisableMode DISABLE_MODE_MAKE_STATIC = 1
Quand Node.process_mode est défini à Node.PROCESS_MODE_DISABLED, rend le corps statique. N'affecte pas les Area2D. Les PhysicsBody2D ne peuvent être affectés par des forces ou d'autres corps lorsqu'ils sont statiques.
Rend automatiquement au PhysicsBody2D son mode original lorsque le Node est de nouveau traité.
DisableMode DISABLE_MODE_KEEP_ACTIVE = 2
Quand Node.process_mode est défini à Node.PROCESS_MODE_DISABLED, ne pas affecter la simulation physique.
Descriptions des propriétés
La couche physique où est ce CollisionObject2D. Les objets de collision peuvent exister dans un ou plusieurs des 32 couches différentes. Voir aussi collision_mask.
Note : Un objet A peut détecter un contact avec l'objet B seulement si l'objet B est dans l'une des couches que l'objet A scanne. Voir Niveaux et masques de collisions dans la documentation pour plus d'informations.
La couche physique que ce CollisionObject2D scanne. Les objets de collision peuvent exister dans une ou plusieurs des 32 couches différentes. Voir aussi collision_mask.
Note : Un objet A peut détecter un contact avec l'objet B seulement si l'objet B est dans l'une des couches que l'objet A scanne. Voir Niveaux et masques de collisions dans la documentation pour plus d'informations.
float collision_priority = 1.0 🔗
La priorité utilisée pour résoudre la collision lors de la pénétration. Plus la priorité est élevée, plus la pénétration dans l'objet sera faible. Cela peut par exemple être utilisé pour empêcher le joueur de franchir les limites d'un niveau.
DisableMode disable_mode = 0 🔗
void set_disable_mode(value: DisableMode)
DisableMode get_disable_mode()
Définit le comportement physique lorsque Node.process_mode est défini à Node.PROCESS_MODE_DISABLED.
Si true, cet objet peut être sélectionné. Ces objets peuvent détecter l'entrée/la sortie du pointeur de la souris sur eux, et si la souris pointe sur l'objet, signaler par des événements d'entrée. Nécessite au moins un bit de collision_layer d'être réglé.
Descriptions des méthodes
void _input_event(viewport: Viewport, event: InputEvent, shape_idx: int) virtual 🔗
Accepte les InputEvents non gérés. shape_idx est l'index de l'enfant du Shape2D cliqué. Connectez-vous à input_event pour récupérer facilement ces événements.
Note : _input_event() nécessite input_pickable de valoir true et au moins un bit de collision_layer d'être défini.
void _mouse_enter() virtual 🔗
Appelée lorsque le pointeur de la souris entre dans l'une des formes de cet objet. Nécessite input_pickable de valoir true et au moins un bit de collision_layer de défini. Notez que le déplacement entre différentes formes dans un seul CollisionObject2D ne causera pas l'appel de cette fonction.
void _mouse_exit() virtual 🔗
Appelée quand le pointeur de la souris sort toutes les formes de cet objet. Nécessite input_pickable de valoir true et au moins un bit de collision_layer de defini. Notez que le déplacement entre différentes formes dans un seul CollisionObject2D ne causera pas l'appel de cette fonction.
void _mouse_shape_enter(shape_idx: int) virtual 🔗
Appelée lorsque le pointeur de la souris entre dans l'une des formes de cet objet ou se déplace d'une forme à une autre. shape_idx est l'index de l'enfant de la Shape2D nouvellement entrée. Nécessite input_pickable de valoir true et au moins un bit de collision_layer d'être défini.
void _mouse_shape_exit(shape_idx: int) virtual 🔗
Appelée quand le pointeur de la souris sort de l'une des formes de cet objet. shape_idx est l'index de l'enfant du Shape2D sorti. Nécessite input_pickable de valoir true et au moins un bit de collision_layer d'être défini.
int create_shape_owner(owner: Object) 🔗
Crée un nouveau propriétaire de forme pour l'objet donné. Renvoie l’owner_id du nouveau propriétaire pour une prochaine référence.
bool get_collision_layer_value(layer_number: int) const 🔗
Renvoie si la couche spécifiée du collision_layer est activée, étant donné un numéro de couche layer_number entre 1 et 32.
bool get_collision_mask_value(layer_number: int) const 🔗
Renvoie si la couche spécifiée du collision_mask est activée, étant donné un numéro de couche layer_number entre 1 et 32.
Renvoie le RID de l'objet.
Vector2 get_shape_owner_one_way_collision_direction(owner_id: int) const 🔗
Returns the one_way_collision_direction of the shape owner identified by the given owner_id.
float get_shape_owner_one_way_collision_margin(owner_id: int) const 🔗
Renvoie la one_way_collision_margin du propriétaire de la forme identifié par le owner_id donné.
PackedInt32Array get_shape_owners() 🔗
Renvoie un Array d'identifiants owner_id. Vous pouvez utiliser ces identifiants dans les méthodes prenant owner_id comme argument.
bool is_shape_owner_disabled(owner_id: int) const 🔗
Si true, le propriétaire de forme et ses formes sont désactivés.
bool is_shape_owner_one_way_collision_enabled(owner_id: int) const 🔗
Renvoie true si les collisions pour le propriétaire de forme venant de ce CollisionObject2D ne seront pas signalées aux CollisionObject2D entrants en collision.
void remove_shape_owner(owner_id: int) 🔗
Supprime le propriétaire de forme donné.
void set_collision_layer_value(layer_number: int, value: bool) 🔗
Selon value, active ou désactive la couche spécifiée dans le collision_layer, étant donné un numéro de couche layer_number entre 1 et 32.
void set_collision_mask_value(layer_number: int, value: bool) 🔗
Selon value, active ou désactive la couche spécifiée dans le collision_mask, étant donné un numéro de couche layer_number entre 1 et 32.
int shape_find_owner(shape_index: int) const 🔗
Renvoie le owner_id de la forme spécifiée.
void shape_owner_add_shape(owner_id: int, shape: Shape2D) 🔗
Ajoute un Shape2D au propriétaire de forme.
void shape_owner_clear_shapes(owner_id: int) 🔗
Enlève toutes les formes au propriétaire de forme.
Object shape_owner_get_owner(owner_id: int) const 🔗
Renvoie l'objet parent du propriétaire de forme spécifié.
Shape2D shape_owner_get_shape(owner_id: int, shape_id: int) const 🔗
Renvoie la Shape2D avec l'identifiant donné du propriétaire de forme donné.
int shape_owner_get_shape_count(owner_id: int) const 🔗
Renvoie le nombre de formes que le propriétaire de forme contient.
int shape_owner_get_shape_index(owner_id: int, shape_id: int) const 🔗
Renvoie l'index de l'enfant de la Shape2D avec l'identifiant donné du propriétaire de forme donné.
Transform2D shape_owner_get_transform(owner_id: int) const 🔗
Renvoie le Transform2D du propriétaire de la forme.
void shape_owner_remove_shape(owner_id: int, shape_id: int) 🔗
Retire la forme du propriétaire de forme donné.
void shape_owner_set_disabled(owner_id: int, disabled: bool) 🔗
Si true, désactive le propriétaire spécifié de la forme.
void shape_owner_set_one_way_collision(owner_id: int, enable: bool) 🔗
Si enable vaut true, les collisions pour le propriétaire de forme originant de ce CollisionObject2D ne seront pas rapportées aux CollisionObject2D entrant en collision.
void shape_owner_set_one_way_collision_direction(owner_id: int, direction: Vector2) 🔗
Sets the one_way_collision_direction of the shape owner identified by the given owner_id to direction.
void shape_owner_set_one_way_collision_margin(owner_id: int, margin: float) 🔗
Définit la marge one_way_collision_margin du propriétaire de la forme identifié par le owner_id donné à margin pixels.
void shape_owner_set_transform(owner_id: int, transform: Transform2D) 🔗
Définit la Transform2D du propriétaire de forme spécifié.