Ajouter une caméra déroulante à vos jeux PyGame
Une caractéristique commune que vous trouverez dans de nombreux jeux est une caméra défilante qui vous suit lorsque vous vous déplacez dans le monde du jeu. Cet effet peut ajouter de la profondeur et du réalisme à votre jeu et améliorer l’expérience de jeu globale.
Il existe de nombreuses façons d’implémenter une caméra déroulante dans PyGame, alors assurez-vous de comprendre leurs différences.
Création d’un jeu simple
Avant de commencer, installez pip sur votre appareil et utilisez la commande ci-dessous pour installer le module PyGame :
Vous pouvez maintenant créer un jeu simple avec un rectangle de joueur et deux plateformes statiques. Le joueur peut se déplacer à gauche et à droite en utilisant les touches fléchées.
Vous pouvez trouver le code complet du projet dans ce document GitHub.
Commencez par importer le module pygame. Ensuite, initialisez-le, et créez la fenêtre de jeu en utilisant la fonction pygame.display.set_mode() de la fonction pygame.display.set_mode(). Ensuite, définissez la légende de la fenêtre et créez l’objet clock pour gérer la fréquence d’images.
Ensuite, mettez en place le lecteur et les plateformes statiques. Définissez la taille du lecteur et sa position initiale.
Ensuite, créez une boucle de jeu qui gère les événements et met à jour l’écran. Dans la boucle, vérifiez les événements tels que l’abandon du jeu ou le déplacement du joueur à l’aide des touches fléchées.
Configuration de la caméra
Maintenant que vous avez un jeu simple avec un rectangle de joueur et deux plateformes statiques, vous pouvez commencer à travailler sur la caméra. Dans PyGame, la caméra est essentiellement un décalage qui agit sur tous les objets que vous dessinez à l’écran. Cela signifie que si vous déplacez la caméra vers la gauche, tout ce qui se trouve à l’écran semblera se déplacer vers la droite.
Pour configurer la caméra, vous devez d’abord définir une variable qui contiendra le décalage X de la caméra. Appelez cette variable camera_offset_x et l’initialiser à 0.
Ensuite, mettez à jour les positions de tous les objets que vous dessinez à l’écran, afin de prendre en compte le décalage de la caméra. Vous pouvez le faire en ajoutant le paramètre décalage_caméra_x à la position X de chaque objet. Par exemple, vous pouvez mettre à jour la position du joueur comme suit :
De même, vous pouvez mettre à jour les positions des plates-formes statiques comme suit :
Déplacement de la caméra à l’aide du clavier
Maintenant que la caméra est installée, vous pouvez commencer à la déplacer. L’une des façons de procéder consiste à déplacer la caméra en réponse à des entrées clavier. Par exemple, vous pouvez déplacer la caméra vers la gauche lorsque le joueur appuie sur la touche fléchée gauche.
Pour ce faire, ajoutez le code suivant à l’intérieur de la boucle d’événements qui gère les entrées clavier :
Une autre méthode consiste à modifier la coordonnée x du joueur lors de l’appui sur le clavier, puis à mettre à jour le décalage de la caméra. Vous pouvez mettre cela en œuvre comme suit :
Ensuite, vous pouvez mettre à jour le décalage de la caméra par rapport à la coordonnée x du joueur comme suit :
Déplacement de la caméra à l’aide de la souris
Une autre façon de déplacer la caméra est d’utiliser la souris. Vous pouvez permettre au joueur de déplacer l’écran en cliquant et en faisant glisser la souris.
Pour ce faire, suivez la position de la souris lorsque le joueur appuie sur le bouton gauche de la souris. Lorsqu’il déplace la souris, mettez à jour la coordonnée x du joueur. Elle doit être modifiée par la différence entre la position actuelle de la souris et la position initiale que vous avez suivie, mouse_start_pos.
Ajout d’autres fonctionnalités de la caméra
Outre l’effet de caméra à défilement, vous pouvez ajouter plusieurs autres fonctions liées à la caméra pour améliorer l’expérience de jeu. L’une d’entre elles est un effet de zoom qui permet au joueur d’agrandir ou de réduire l’univers du jeu. Vous pouvez obtenir cet effet en modifiant la taille de la fenêtre de jeu et en mettant à l’échelle les objets dessinés à l’écran.
Pour ce faire, définissez une variable zoom qui stockera le niveau de zoom actuel du jeu. Fixez sa valeur initiale à 1,0, ce qui correspond à un niveau de zoom nul. Ensuite, définissez une fonction qui calculera la taille à l’échelle d’un objet en fonction du niveau de zoom actuel.
Ensuite, mettez à jour les positions et les tailles des objets dessinés à l’écran à l’aide de la fonction get_scaled_size à l’aide de la fonction get_scaled_size. Par exemple, vous pouvez mettre à jour la position et la taille du joueur comme suit :
De même, mettez à jour les positions et les tailles des plates-formes statiques comme suit :
Augmenter ou diminuer le niveau de zoom de 0,1 lorsque le joueur appuie sur la touche = ou – respectivement. Définissez la nouvelle taille de la fenêtre de jeu en fonction du niveau de zoom actuel. Pour ce faire, ajoutez le code suivant dans la boucle d’événements qui gère les entrées clavier :
Avec le code ci-dessus, vous avez ajouté avec succès un effet de caméra zoomante à notre jeu PyGame. En combinant cette fonctionnalité avec l’effet de caméra défilante, vous pouvez créer une expérience de jeu dynamique et attrayante.
Améliorer le gameplay avec les mouvements de la caméra
L’ajout d’une caméra déroulante à un jeu PyGame améliore non seulement l’expérience visuelle, mais aussi le gameplay. Elle permet au joueur de voir une plus grande partie du monde du jeu, ce qui lui donne une meilleure compréhension de son environnement et facilite la navigation.
Vous pouvez également utiliser le mouvement de la caméra pour créer des effets spéciaux tels que des zooms avant et arrière ou des secousses de l’écran pour simuler des explosions ou des tremblements de terre.
S’abonner à notre lettre d’information
Comment faire pour que le lecteur pygame saute ?
Vous commencez un saut en appuyant sur la barre d’espacement (définir une variable) et l’arrêtez, lorsque vous touchez le sol. vous commencez un saut sur keydown (pygame. KEYDOWN) pas si pressé.
Est-il possible de faire un jeu en 3D avec Pygame ?
Pygame n’est pas vraiment conçu pour les graphiques 3D, donc si vous voulez créer un jeu avec des graphiques 3D, vous feriez mieux d’utiliser quelque chose d’autre où toutes les bases, comme l’ombrage, sont faites automatiquement.
Comment utiliser plusieurs écrans dans pygame ?
Pour avoir plusieurs fenêtres dans pygame, vous avez besoin de plusieurs processus (un pour chaque fenêtre). Bien que cela soit faisable, cela ne vaut pas la peine. Vous aurez besoin d’IPC pour échanger des données entre les fenêtres, et je suppose que votre code deviendra sujet à des erreurs et moche. Utilisez pyglet si vous avez besoin de plus d’une fenêtre.
Comment définir les positions dans pygame ?
Pour positionner un objet sur l’écran, nous devons indiquer à la fonction blit() où placer l’image. Dans pygame, nous passons toujours les positions sous la forme d’une coordonnée (X,Y). Cela représente le nombre de pixels vers la droite et le nombre de pixels vers le bas pour placer l’image. Le coin supérieur gauche d’une surface est la coordonnée (0, 0).