Zelda Nes en python (défi final)
Completion requirements
10. Particles.py
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
AnimationPlayeravec un dictionnaire contenant différents types d'animations pour les particules.
- Initialise la classe
-
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
ParticleEffectavec différentes propriétés pour gérer l'animation des particules.
- Initialise la classe
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.