Les projets Pygame dépourvus d'animation peuvent être incroyablement ennuyeux. Améliorez l'attrait de vos jeux en incorporant des animations captivantes.

L'animation est un aspect crucial du développement de jeux qui apporte vie et dynamisme à vos créations. En incorporant des animations, vous pouvez créer des visuels captivants et des expériences de jeu immersives pour vos joueurs.

Pygame fournit un ensemble complet d'outils qui simplifient le processus de création d'animations. Il fournit des fonctionnalités intégrées, notamment le chargement et l'affichage des images, le contrôle des animations avec l'entrée du lecteur, etc.

Créer un jeu simple

Commencez par créer un jeu simple qui permet au joueur de se déplacer à gauche et à droite. Vous pouvez également ajouter une plate-forme au jeu.

Le code utilisé dans cet article est disponible dans ce Référentiel GitHub et est libre d'utilisation sous la licence MIT.

Créer un nouveau fichier jeu-simple.py et définir certaines variables, y compris les positions initiales et les vitesses du joueur et de la plate-forme. Ces variables seront utilisées pour contrôler le mouvement du sprite du joueur.

instagram viewer

Gérez la saisie du joueur en récupérant l'état du clavier à l'aide de pygame.key.get_pressed(). Si la touche fléchée gauche est enfoncée, vous pouvez diminuer la valeur de joueur_x, et si la touche fléchée droite est enfoncée, vous pouvez l'augmenter. Cela crée l'effet de mouvement pour le sprite du joueur.

Votre jeu initial devrait ressembler à ceci :

Chargement et affichage des cadres

Pour créer des animations, charger et afficher différentes images ou des images de l'animation. Chaque image représente une image ou un sprite spécifique qui sera affiché dans une séquence pour donner l'illusion de mouvement. Supposons que vous ayez trois cadres: cadre0, cadre1, et cadre2. Au départ, vous pouvez afficher cadre0.

Créer un nouveau fichier nommé animer.py et ajoutez le code avec les mises à jour ci-dessous :


# Charger les cadres
frame0 = pygame. Surface((20, 20))
frame0.fill((255, 0, 0))

frame1 = pygame. Surface((20, 20))
frame1.fill((0, 255, 0))

frame2 = pygame. Surface((20, 20))
frame2.fill((0, 0, 255))

# Définir le cadre initial
image_actuelle = image0

# Boucle de jeu
alors que en cours d'exécution:
# ...

# Rendre le jeu
# ...
screen.blit (image_actuelle, (joueur_x, joueur_y))

pygame.display.flip()

# ...

Contrôler les animations avec l'entrée du joueur

Pour animer le sprite du joueur, vous pouvez basculer entre différentes images en fonction de l'entrée du joueur. Par exemple, lorsque le joueur se déplace vers la gauche ou vers la droite à l'aide des touches fléchées, vous pouvez parcourir les images pour créer l'illusion de mouvement.

# Boucle de jeu
alors que en cours d'exécution:
# ...

# Gérer l'entrée du joueur
clés = pygame.key.get_pressed()
si clés[pygame. K_LEFT] :
joueur_x -= vitesse_joueur
image_actuelle = image1
elif clés[pygame. K_RIGHT] :
player_x += player_speed
image_actuelle = image2
autre:
image_actuelle = image0

# Rendre le jeu
# ...
screen.blit (image_actuelle, (joueur_x, joueur_y))

pygame.display.flip()

# ...

Ci-dessous la sortie :

Inclure des fonctionnalités supplémentaires

En plus de la fonctionnalité d'animation de base, Pygame propose plusieurs fonctionnalités supplémentaires pour améliorer votre expérience de développement de jeux.

Feuilles de sprites

Au lieu de charger des images individuelles, vous pouvez utiliser des feuilles de sprites contenant plusieurs images dans une seule image. Pygame fournit des fonctions pour extraire et afficher des régions spécifiques d'une feuille de sprite. Voici un exemple :

# Charger l'image de la feuille de sprite
sprite_sheet = pygame.image.load("spritesheet.png")

# Définir les dimensions de chaque cadre
frame_width = 32
hauteur_cadre = 32

# Fonction pour extraire les images de la feuille de sprite
définitivementextrait_frames(feuille, largeur_cadre, hauteur_cadre):
# code pour extraire les cadres

# Extraire les images de la feuille de sprite
frames = extract_frames (sprite_sheet, frame_width, frame_height)

# Afficher une image de la feuille de sprite
image_actuelle = images[0]

# Boucle de jeu
alors que en cours d'exécution:
# ...
screen.blit (image_actuelle, (joueur_x, joueur_y))
# ...

La vitesse d'animation

Vous pouvez contrôler la vitesse de vos animations en introduisant des délais entre les mises à jour des images. Cela permet un mouvement fluide et réaliste. Voici un exemple de la façon dont vous pouvez contrôler la vitesse d'animation en utilisant le temps module:

# Variables de vitesse d'animation
animation_delay = 100# Délai en millisecondes entre les mises à jour de trame
last_frame_time = pygame.time.get_ticks()

# Boucle de jeu
alors que en cours d'exécution:
# ...

# Vérifiez si suffisamment de temps s'est écoulé pour mettre à jour le cadre
heure_actuelle = pygame.heure.get_ticks()
si heure_actuelle - heure_dernière_image >= délai_animation :
# Mettre à jour le cadre

# Rendre le jeu
# ...
screen.blit (image_actuelle, (joueur_x, joueur_y))

pygame.display.flip()

Détection de collision

Pygame propose des fonctions de détection de collision pour détecter les interactions entre les objets animés, tels que détecter quand le joueur entre en collision avec une plate-forme. Voici un exemple d'intégration de la détection de collision dans votre jeu :

# Détection de collision
définitivementcheck_collision(player_rect, platform_rect):
si player_rect.colliderect (platform_rect) :
# collision s'est produite
retourVrai
autre:
retourFAUX

# Boucle de jeu
alors que en cours d'exécution:
# ...

# Effectuer la détection de collision
player_rect = pygame. Rect (joueur_x, joueur_y, 20, 20)
platform_rect = pygame. Rect (plate-forme_x, plate-forme_y,
plate-forme_largeur, plate-forme_hauteur)

si check_collision (player_rect, platform_rect) :
# Gérer les collisions

# Rendre le jeu
# ...
screen.blit (image_actuelle, (joueur_x, joueur_y))

pygame.display.flip()

En utilisant ces fonctionnalités supplémentaires, vous pouvez étendre vos capacités de développement de jeux et créer des expériences de jeu plus dynamiques et immersives. Expérimentez différentes techniques, combinez-les de manière créative et laissez votre imagination vous guider pour créer des jeux vraiment captivants.

Meilleures pratiques pour créer une animation dans Pygame

Lorsque vous ajoutez une animation à vos projets Pygame, il est important de suivre certaines bonnes pratiques pour optimiser votre implémentation et garantir des animations fluides et efficaces. Tenez compte des directives suivantes :

Précharger et stocker les images en mémoire

Le chargement d'images à partir du disque pendant la boucle de jeu peut entraîner des retards et avoir un impact sur les performances. Pour éviter cela, préchargez vos images et stockez-les en mémoire avant le début de la boucle de jeu. De cette façon, vous pouvez accéder et afficher rapidement les trames pendant l'exécution sans aucune surcharge d'E/S disque.

Utiliser les classes de sprite et d'animation intégrées de Pygame

Pygame fournit des classes intégrées telles que pygame.sprite. Lutin et pygame.sprite. Groupe qui simplifie la gestion des sprites et des animations. En utilisant ces classes, vous pouvez gérer plus efficacement la détection des collisions, les mises à jour de groupe et le rendu.

Optimiser les formats d'images

Envisagez d'optimiser vos formats d'image pour de meilleures performances. Pygame prend en charge divers formats d'image, notamment PNG et JPEG. PNG est généralement recommandé pour les images avec transparence, tandis que JPEG convient aux images statiques sans transparence.

Expérimentez avec différents formats d'image et niveaux de compression pour trouver l'équilibre optimal entre la qualité de l'image et la taille du fichier.

Utiliser les fréquences d'images appropriées

Pour obtenir des animations fluides, il est important de définir une fréquence d'images appropriée. Pygame fournit le pygame.time. Horloge classe, qui aide à contrôler la fréquence d'images en régulant la vitesse de la boucle de jeu.

En appelant le cocher() méthode de l'objet Clock à la fin de chaque itération, vous pouvez conserver une fréquence d'images cohérente. Ajustez la fréquence d'images en fonction de la complexité de vos animations et des capacités de performance de votre plate-forme cible.

En suivant ces meilleures pratiques, vous pouvez optimiser la mise en œuvre de votre animation, améliorer les performances de vos jeux et créer des expériences visuellement attrayantes et engageantes pour vos joueurs.

Rendez les jeux plus amusants avec des animations

L'ajout d'animations à vos jeux peut grandement améliorer l'expérience globale du joueur. Les animations donnent vie aux personnages et aux objets, rendant les mouvements plus fluides et plus attrayants. Qu'il s'agisse d'un personnage qui saute, d'ennemis qui attaquent ou d'objets qui interagissent, les animations rendent votre monde de jeu plus immersif et visuellement attrayant.

En tirant parti des capacités d'animation de Pygame, vous pouvez captiver vos joueurs et créer des jeux qui laissent une impression durable.