Zelda Nes en python (défi final)

6. Debug.py

Ce code définit une fonction de débogage pour afficher des informations à l'écran dans un jeu Pygame. Voici une explication détaillée du code :

  1. Imports :

    python
  • import pygame import os
    • pygame est la bibliothèque de jeu utilisée.
    • os est utilisé pour effectuer des opérations liées au système d'exploitation, notamment le changement du répertoire de travail.
  • Changement du répertoire de travail :

    python
  • os.chdir(os.path.dirname(os.path.abspath(__file__)))
    • Comme dans les exemples précédents, cela change le répertoire de travail actuel pour le répertoire du script en cours d'exécution.
  • Initialisation de Pygame et création d'une police :

    python
  • pygame.init() font = pygame.font.Font(None, 30)
    • pygame.init() initialise la bibliothèque Pygame.
    • pygame.font.Font(None, 30) crée un objet police Pygame avec une taille de police de 30 pixels. La police est utilisée pour rendre le texte lors du débogage.
  • Fonction de débogage (debug) :

    python
  1. def debug(info, y=10, x=10): display_surface = pygame.display.get_surface() debug_surf = font.render(str(info), True, "White") debug_rect = debug_surf.get_rect(topleft=(x, y)) pygame.draw.rect(display_surface, "Black", debug_rect) display_surface.blit(debug_surf, debug_rect)
    • La fonction debug prend trois paramètres :
      • info: L'information à afficher (peut être n'importe quel type, car elle est convertie en chaîne avec str(info)).
      • y: La position verticale du coin supérieur gauche du texte (par défaut à 10 pixels depuis le haut de la fenêtre).
      • x: La position horizontale du coin supérieur gauche du texte (par défaut à 10 pixels depuis la gauche de la fenêtre).
    • La fonction utilise la surface d'affichage actuelle de Pygame (pygame.display.get_surface()).
    • Elle crée une surface de texte (debug_surf) à partir de l'information fournie, avec une couleur blanche.
    • Un rectangle (debug_rect) est créé pour délimiter la zone où le texte sera affiché, avec la position spécifiée par les paramètres x et y.
    • Ce rectangle est rempli avec une couleur noire ("Black") à l'aide de pygame.draw.rect().
    • Enfin, la surface de texte est blittée (copiée) sur la surface d'affichage à la position définie par le rectangle.

Cette fonction est utile pour afficher des informations de débogage à l'écran pendant le développement du jeu. Elle peut être appelée à différents endroits du code pour afficher des variables, des états ou d'autres informations importantes.