10. Particles.py

Ce code définit la classe AnimationPlayer et la classe ParticleEffect, qui gèrent les animations des particules dans le jeu. Voici une explication ligne par ligne :

Importation de modules et de fonctions :

python
import pygame from Support import import_folder from random import choice import os
    • Importe les modules nécessaires, y compris Pygame pour la création de jeux, et les fonctions d'assistance.
  • Changement du répertoire de travail :

    python
os.chdir(os.path.dirname(os.path.abspath(__file__)))
    • Change le répertoire de travail actuel pour le répertoire du script en cours d'exécution.
  • Classe AnimationPlayer :

    python
class AnimationPlayer: def __init__(self): # ... (voir explications ci-dessous) def reflect_images(self, frames): # ... (voir explications ci-dessous) def create_grass_particles(self, pos, groups): # ... (voir explications ci-dessous) def create_particles(self, animation_type, pos, groups): # ... (voir explications ci-dessous)
  • Initialisation de la classe AnimationPlayer :

    python
def __init__(self): self.frames = { # ... (voir explications ci-dessous) }
    • Initialise la classe AnimationPlayer avec un dictionnaire contenant différents types d'animations pour les particules.
  • Méthode reflect_images :

    python
def reflect_images(self, frames): new_frames = [] for frame in frames: flipped_frame = pygame.transform.flip(frame, True, False) new_frames.append(flipped_frame) return new_frames
    • Cette méthode retourne une liste de frames d'animation reflétées horizontalement.
  • Méthode create_grass_particles :

    python
def create_grass_particles(self, pos, groups): animation_frames = choice(self.frames["leaf"]) ParticleEffect(pos, animation_frames, groups)
    • Cette méthode crée des particules d'herbe en choisissant aléatoirement parmi les animations de feuilles.
  • Méthode create_particles :

    python
def create_particles(self, animation_type, pos, groups): animation_frames = self.frames[animation_type] ParticleEffect(pos, animation_frames, groups)
    • Cette méthode crée des particules en fonction du type d'animation spécifié et de la position donnée.
  • Classe ParticleEffect :

    python
class ParticleEffect(pygame.sprite.Sprite): def __init__(self, pos, animation_frames, groups): # ... (voir explications ci-dessous) def animate(self): # ... (voir explications ci-dessous) def update(self): # ... (voir explications ci-dessous)
  • Initialisation de la classe ParticleEffect :

    python
def __init__(self, pos, animation_frames, groups): super().__init__(groups) self.sprite_type = "magic" self.frame_index = 0 self.animation_speed = 0.15 self.frames = animation_frames self.image = self.frames[self.frame_index] self.rect = self.image.get_rect(center = pos)
    • Initialise la classe ParticleEffect avec différentes propriétés pour gérer l'animation des particules.

Méthode animate :

python
def animate(self): self.frame_index += self.animation_speed if self.frame_index >= len(self.frames): self.kill() else: self.image = self.frames[int(self.frame_index)]
  • Cette méthode anime les particules en changeant les images à un certain rythme. Si l'animation est terminée, la particule est supprimée.

Méthode update :

python
def update(self): self.animate()
  • Cette méthode met à jour l'animation des particules lorsqu'elle est appelée dans la boucle principale du jeu.