Zelda Nes en python (défi final)
Conditions d’achèvement
11. Player.py
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
Playeravec différentes propriétés, y compris l'image, la position, les attributs de mouvement, les statistiques du personnage, etc.
- Initialise la classe
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)