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...
Camera2D
Hérite de : Node2D < CanvasItem < Node < Object
Nœud de caméra pour les scènes en 2D.
Description
Nœud de caméra pour des scènes 2D. Il force l'écran (couche actuelle) à défiler en suivant ce nœud. Cela rend plus facile (et plus rapide) de programmer des scènes défilantes que de changer manuellement la position des nœuds basés sur CanvasItem.
Les caméras s'auto-enregistrent dans le nœud Viewport le plus proche (en montant dans l'arbre). Une seule caméra peut être active par fenêtre d'affichage. Si aucune fenêtre n'est disponible en montant de l'arbre, la caméra s'enregistrera dans la fenêtre globale.
Ce nœud est destiné à être un simple assistant pour commencer à développer rapidement, mais plus de fonctionnalités peuvent être désirées pour changer la façon dont la caméra fonctionne. Pour faire votre propre nœud de caméra personnalisé, héritez-le de Node2D et modifiez la transformation du canevas en définissant Viewport.canvas_transform dans Viewport (vous pouvez obtenir le Viewport actuel en utilisant Node.get_viewport()).
Notez que la position globale (Node2D.global_position) du nœud Camera2D ne représente pas la position actuelle de l'écran, qui peut différer en raison du lissage appliqué ou des limites. Vous pouvez utiliser get_screen_center_position() pour obtenir la position réelle. Même chose pour la rotation globale (Node2D.global_rotation) qui peut être différente en raison du lissage de rotation appliqué. Vous pouvez utiliser get_screen_rotation() pour obtenir la rotation actuelle de l'écran.
Tutoriels
Propriétés
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Méthodes
void |
align() |
void |
|
get_drag_margin(margin: Side) const |
|
get_screen_center_position() const |
|
get_screen_rotation() const |
|
get_target_position() const |
|
is_current() const |
|
void |
|
void |
|
void |
set_drag_margin(margin: Side, drag_margin: float) |
void |
Énumérations
enum AnchorMode: 🔗
AnchorMode ANCHOR_MODE_FIXED_TOP_LEFT = 0
La position de la caméra est fixe de telle sorte que le coin supérieur gauche soit toujours à l'origine.
AnchorMode ANCHOR_MODE_DRAG_CENTER = 1
La position de la caméra prend en compte le décalage vertical et horizontal, et la taille de l'écran.
enum Camera2DProcessCallback: 🔗
Camera2DProcessCallback CAMERA2D_PROCESS_PHYSICS = 0
La caméra se met à jour pendant les trames de physique (voir Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS).
Camera2DProcessCallback CAMERA2D_PROCESS_IDLE = 1
La caméra se met à jour pendant les trames de traitement (voir Node.NOTIFICATION_INTERNAL_PROCESS).
Descriptions des propriétés
AnchorMode anchor_mode = 1 🔗
void set_anchor_mode(value: AnchorMode)
AnchorMode get_anchor_mode()
Le point d'ancrage de la caméra2D.
Le nœud Viewport personnalisé attaché à la Camera2D. Si null ou que ça n'est pas un Viewport, ça utilise la fenêtre d'affichage par défaut à la place.
float drag_bottom_margin = 0.2 🔗
La marge inférieure nécessaire pour faire glisser la caméra. Une valeur de 1 fait que la caméra se déplace uniquement lorsqu'elle atteint le bord inférieur de l'écran.
bool drag_horizontal_enabled = false 🔗
Si true, la caméra ne bouge que lorsqu'elle atteint les marges horizontales (droite et gauche) de glissage. Si false, la caméra se déplace horizontalement indépendamment des marges.
float drag_horizontal_offset = 0.0 🔗
Le décalage de glissage horizontal relatif de la caméra entre les marges de glissage droite (-1) et gauche (1).
Note : Utilisé pour régler le décalage initial du glissement horizontal, déterminer le décalage actuel, ou forcer le décalage actuel. Il n'est pas automatiquement mis à jour lorsque drag_horizontal_enabled vaut true ou que les marges sont modifiées.
float drag_left_margin = 0.2 🔗
Marge de gauche nécessaire pour faire glisser la caméra. Une valeur de 1 ne déplace la caméra que lorsqu'elle atteint le bord gauche de l'écran.
float drag_right_margin = 0.2 🔗
Marge de droite nécessaire pour faire glisser la caméra. Une valeur de 1 ne déplace la caméra que lorsqu'elle atteint le bord droit de l'écran.
Marge du haut nécessaire pour faire glisser la caméra. Une valeur de 1 ne déplace la caméra que lorsqu'elle atteint le bord du haut de l'écran.
bool drag_vertical_enabled = false 🔗
Si true, la caméra ne bouge que lorsqu'elle atteint les marges verticales (haut et bas) de glissage. Si false, la caméra se déplace verticalement indépendamment des marges de glissage.
float drag_vertical_offset = 0.0 🔗
Le décalage de glissement vertical relatif de la caméra entre le bas (-1) et le dessus (1)) des marges de glissement.
Note : Utilisé pour régler le décalage initial du glissement vertical, déterminer le décalage courant, ou forcer le décalage courant. Il n'est pas automatiquement mis à jour lorsque drag_vertical_enabled vaut true ou que les marges de glissement sont modifiées.
bool editor_draw_drag_margin = false 🔗
Si true, dessine le rectangle de la marge de glissage de la caméra activée dans l'éditeur.
bool editor_draw_limits = false 🔗
Si true, dessine le rectangle des limites de la caméra activée dans l'éditeur.
bool editor_draw_screen = true 🔗
Si true, affiche le rectangle de la caméra dans l'éditeur.
Contrôle si la caméra peut être active ou non. Si true, la Camera2D deviendra la caméra principale lorsqu'elle entre dans l’arborescence de scène et il n'y a pas de caméra active actuellement (voir Viewport.get_camera_2d()).
Lorsque la caméra est actuellement active et enabled est défini à false, la Camera2D suivante avec cette propriété activée dans l'arbre de scène deviendra la caméra principale.
Si true, la vue rendue de la caméra n'est pas affectée par Node2D.rotation et Node2D.global_rotation.
La limite basse de défilement en pixels. La caméra s'arrête quand elle atteint cette valeur, mais offset peut pousser la vue au-delà de cette limite.
Si true, les limites seront activées. Désactiver ceci permettra à la caméra de se focaliser n'importe où, car les quatre propriétés limit_* ne fonctionneront pas.
La limite gauche de défilement en pixels. La caméra s'arrête quand elle atteint cette valeur, mais offset peut pousser la vue au-delà de cette limite.
La limite droite de défilement en pixels. La caméra s'arrête quand elle atteint cette valeur, mais offset peut pousser la vue au-delà de cette limite.
Si true, la caméra s'arrête en douceur quand elle atteint ses limites.
Cette propriété n'a aucun effet si position_smoothing_enabled vaut false.
Note : Pour mettre immédiatement à jour la position de la caméra pour être dans les limites sans ralenti, même avec ce réglage activé, appelez reset_smoothing().
La limite haute de défilement en pixels. La caméra s'arrête quand elle atteint cette valeur, mais offset peut pousser la vue au-delà de cette limite.
Vector2 offset = Vector2(0, 0) 🔗
Le décalage relatif de la caméra. Utile pour regarder autour ou des animations de vibrations de la caméra. Le décalage de la caméra peut dépasser les limites définies dans limit_top, limit_bottom, limit_left et limit_right.
bool position_smoothing_enabled = false 🔗
Si true, la vue de la caméra se déplace de manière lisse vers sa position cible à la vitesse position_smoothing_speed.
float position_smoothing_speed = 5.0 🔗
La vitesse en pixels par seconde de l'effet de lissage de la caméra quand position_smoothing_enabled vaut true.
Camera2DProcessCallback process_callback = 1 🔗
void set_process_callback(value: Camera2DProcessCallback)
Camera2DProcessCallback get_process_callback()
Le callback de traitement de la caméra.
bool rotation_smoothing_enabled = false 🔗
Si true, la vue de la caméra tourne de manière lisse, via un lissage asymptotique, pour s'aligner avec sa rotation cible à la vitesse rotation_smoothing_speed.
Note : Cette propriété n'a aucun effet si ignore_rotation vaut true.
float rotation_smoothing_speed = 5.0 🔗
La vitesse angulaire et asymptotique de l'effet de lissage de rotation de la caméra lorsque rotation_smoothing_enabled vaut true.
Vector2 zoom = Vector2(1, 1) 🔗
Le zoom de la caméra. Les valeurs plus élevées sont plus zoomées. Par exemple, un zoom de Vector2(2.0, 2.0) sera deux fois plus zoomé sur chaque axe (la vue couvre une zone quatre fois plus petite). Par contre, un zoom de Vector2(0.5, 0.5) sera deux fois moins zoomé sur chaque axe (la vue couvre une zone quatre fois plus grande). Les composantes X et Y doivent généralement être définies à la même valeur, sauf si vous souhaitez étirer la vue de la caméra.
Note : FontFile.oversampling ne prend pas le zoom de Camera2D en compte. Cela signifie que zoomer/dézoomer causera les polices bitmap et les polices dynamiques rasterisées (non CDSM) d'apparaître floues ou pixelisées à moins que la police fasse partie d'un CanvasLayer qui la fait ignorer le zoom de la caméra. Pour garantir que le texte reste net peu importe le zoom, vous pouvez activer le rendu de police CDSM en activant ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (s'applique uniquement à la police du projet par défaut), ou en activant Champ de Distance Signé Multicanal dans les options d'importation d'une DynamicFont pour les polices personnalisées. Sur les polices système, SystemFont.multichannel_signed_distance_field peut être activé dans l'inspecteur.
Descriptions des méthodes
void align() 🔗
Aligne la caméra sur le nœud suivi.
Note : Il n’est pas nécessaire d’appeler force_update_scroll() après cette méthode.
void force_update_scroll() 🔗
Force la caméra à mettre à jour le défilement immédiatement.
float get_drag_margin(margin: Side) const 🔗
Renvoie la marge du côté Side spécifié. Voir aussi drag_bottom_margin, drag_top_margin, drag_left_margin, et drag_right_margin.
int get_limit(margin: Side) const 🔗
Renvoie la limite de la caméra pour le côté Side spécifié. Voir aussi limit_bottom, limit_top, limit_left, et limit_right.
Vector2 get_screen_center_position() const 🔗
Renvoie le centre de l'écran du point de vue de cette caméra, dans les coordonnées globales.
Note : La position ciblée exacte de la caméra peut être différente. Voir get_target_position().
float get_screen_rotation() const 🔗
Renvoie la rotation actuelle de l'écran du point de vue de cette caméra.
Note : La rotation de l'écran peut être différente de Node2D.global_rotation si la caméra tourne de manière lisse à cause de rotation_smoothing_enabled.
Vector2 get_target_position() const 🔗
Renvoie la position cible de cette caméra, dans les coordonnées globales.
Note : La valeur renvoyée n'est pas la même que Node2D.global_position, car elle est affectée par les propriétés de glissage. Ce n'est aussi pas la même que la position actuelle si position_smoothing_enabled vaut true (voir get_screen_center_position()).
Renvoie true si cette Camera2D est la caméra active (voir Viewport.get_camera_2d()).
void make_current() 🔗
Force cette Camera2D à devenir la caméra active courante. enabled doit valoir true.
void reset_smoothing() 🔗
Définit la position de la caméra immédiatement à sa destination de lissage actuelle.
Cette méthode n'a aucun effet si position_smoothing_enabled vaut false.
void set_drag_margin(margin: Side, drag_margin: float) 🔗
Définit la marge du côté Side spécifié. Voir aussi drag_bottom_margin, drag_top_margin, drag_left_margin, et drag_right_margin.
void set_limit(margin: Side, limit: int) 🔗
Définit la limite de la caméra pour le côté Side spécifié. Voir aussi limit_bottom, limit_top, limit_left, et limit_right.