Zelda Nes en python (défi final)

11. Player.py

Ce code définit la classe Player, qui représente le personnage contrôlé par le joueur dans le jeu. Voici une explication ligne par ligne :

Importation de modules et de fonctions :

python
import pygame from Support import import_folder from Settings import * import os, sys
    • Importe les modules nécessaires pour le jeu, 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.

Définition de la classe Player :

python
class Player(Entity): def __init__(self, pos, groups, obstacle_sprites, create_attack, destroy_attack, create_magic): # ... (voir explications ci-dessous) def import_player_assets(self): # ... (voir explications ci-dessous) def input(self): # ... (voir explications ci-dessous) def get_status(self): # ... (voir explications ci-dessous) def cooldowns(self): # ... (voir explications ci-dessous) def animate(self): # ... (voir explications ci-dessous) def get_full_weapon_damage(self): # ... (voir explications ci-dessous) def get_full_magic_damage(self): # ... (voir explications ci-dessous) def get_value_by_index(self, index): # ... (voir explications ci-dessous) def player_death(self): # ... (voir explications ci-dessous) def get_cost_by_index(self, index): # ... (voir explications ci-dessous) def energy_recovery(self): # ... (voir explications ci-dessous) def update(self): # ... (voir explications ci-dessous)

Initialisation de la classe Player :

python
def __init__(self, pos, groups, obstacle_sprites, create_attack, destroy_attack, create_magic): super().__init__(groups) # ... (voir explications ci-dessous)
    • Initialise la classe Player avec différentes propriétés, y compris l'image, la position, les attributs de mouvement, les statistiques du personnage, etc.

Méthode import_player_assets :

python
def import_player_assets(self): character_path = "../Graphics/Player/" self.animations = { "up": [], "down": [], "left": [], "right": [], "right_idle": [], "left_idle": [], "up_idle": [], "down_idle":[], "right_attack": [], "left_attack": [], "up_attack": [], "down_attack": [] } for animation in self.animations.keys(): full_path = character_path + animation self.animations[animation] = import_folder(full_path)
    • Importe les animations du joueur à partir des dossiers correspondants.

Méthode input :

python
def input(self): # ... (voir explications ci-dessous)
    • Gère les entrées du joueur, y compris les mouvements, les attaques et les changements d'arme/magie.

Méthode get_status :

python
def get_status(self): # ... (voir explications ci-dessous)
    • Détermine le statut actuel du joueur en fonction de ses actions, comme les mouvements ou les attaques.

Méthode cooldowns :

python
def cooldowns(self): # ... (voir explications ci-dessous)
    • Gère les temps de recharge des attaques, des changements d'arme/magie et de l'invulnérabilité après avoir été touché.

Méthode animate :

python
def animate(self): # ... (voir explications ci-dessous)
    • Anime le joueur en changeant les images en fonction de son statut et de ses actions.

Méthodes get_full_weapon_damage et get_full_magic_damage :

python
def get_full_weapon_damage(self): # ... (voir explications ci-dessous) def get_full_magic_damage(self): # ... (voir explications ci-dessous)
    • Calcule les dégâts totaux du joueur en combinant les dégâts de base et ceux de l'arme ou de la magie utilisée.

Méthode get_value_by_index :

python
def get_value_by_index(self, index): # ... (voir explications ci-dessous)
    • Renvoie la valeur d'une statistique du joueur en fonction de son index.

Méthode player_death :

python
def player_death(self): # ... (voir explications ci-dessous)
    • Vérifie si le joueur est mort et quitte le jeu si c'est le cas.

Méthode get_cost_by_index :

python
def get_cost_by_index(self, index): # ... (voir explications ci-dessous)
    • Renvoie le coût d'une amélioration en fonction de son index.

Méthode energy_recovery :

python
def energy_recovery(self): # ... (voir explications ci-dessous)