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)