Zelda Nes en python (défi final)
Completion requirements
5. UI.py
Ce code définit une classe UI qui gère l'interface utilisateur du jeu. Voici une explication détaillée du code :
-
Imports :
python
-
import pygame from Settings import * import ospygameest la bibliothèque de jeu utilisée.Settingsest un module défini ailleurs dans le projet, contenant des constantes et des configurations.
-
Changement du répertoire de travail :
python -
os.chdir(os.path.dirname(os.path.abspath(__file__)))- Comme dans le code précédent, cela change le répertoire de travail actuel pour le répertoire du script en cours d'exécution.
-
Classe
UI:python -
class UI: def __init__(self): # Initialisation générale self.display_surface = pygame.display.get_surface() self.font = pygame.font.Font(UI_FONT, UI_FONT_SIZE) # Configuration des barres self.health_bar_rect = pygame.Rect(10, 10, HEALTH_BAR_WIDTH, BAR_HEIGHT) self.energy_bar_rect = pygame.Rect(10, 34, ENERGY_BAR_WIDTH, BAR_HEIGHT) # Conversion du dictionnaire des armes self.weapon_graphics = [] for weapon in weapon_data.values(): path = weapon["graphic"] weapon_image = pygame.image.load(path).convert_alpha() self.weapon_graphics.append(weapon_image) # Conversion du dictionnaire des magies self.magic_graphics = [] for magic in magic_data.values(): magic_image = pygame.image.load(magic["graphic"]).convert_alpha() self.magic_graphics.append(magic_image)- Le constructeur initialise l'interface utilisateur avec des éléments tels que la surface d'affichage, la police, les rectangles des barres de santé et d'énergie, et les images des armes et des magies.
-
Méthodes de la classe
UI:show_bar(self, current, max_amount, bg_rect, color): Affiche une barre avec la couleur spécifiée.show_exp(self, exp): Affiche le niveau d'expérience du joueur.selection_box(self, left, top, has_switched): Affiche une boîte de sélection avec ou sans bordure active, en fonction de la valeur dehas_switched.weapon_overlay(self, weapon_index, has_switched): Affiche l'arme actuelle du joueur avec une boîte de sélection.magic_overlay(self, magic_index, has_switched): Affiche la magie actuelle du joueur avec une boîte de sélection.display(self, player): Affiche l'ensemble de l'interface utilisateur, y compris les barres de santé et d'énergie, l'expérience du joueur, l'arme et la magie actuelles.
-
Utilisation de la classe
UI:python
-
def display(self, player): self.show_bar(player.health, player.stats["health"], self.health_bar_rect, HEALTH_COLOR) self.show_bar(player.energy, player.stats["energy"], self.energy_bar_rect, ENERGY_COLOR) self.show_exp(player.exp) self.weapon_overlay(player.weapon_index, not player.can_switch_weapon) self.magic_overlay(player.magic_index, not player.can_switch_magic)- Cette méthode est probablement appelée ailleurs dans le code du jeu pour afficher l'interface utilisateur en fonction de l'état actuel du joueur.
En résumé, la classe UI gère l'affichage des éléments de l'interface utilisateur du jeu, tels que les barres de santé et d'énergie, l'expérience, les armes et les magies.