Zelda Nes en python (défi final)
2. Main.py
Le premier fichier a réaliser dans le dossier "code".
Ce code Python utilise la bibliothèque Pygame.
Voici une explication de chaque partie du code vous avez à les reprendre et les compléter :
Imports :
python
import pygame, sys from Settings import * from Level import Level import os pygameest une bibliothèque populaire pour le développement de jeux en Python.sysest utilisé pour accéder à certaines fonctionnalités spécifiques du système.SettingsetLevelsont des modules définis ailleurs dans le projet.
Changement du répertoire de travail :
python
os.chdir(os.path.dirname(os.path.abspath(__file__))) -
- Cette ligne change le répertoire de travail actuel pour le répertoire du script en cours d'exécution. Cela est généralement fait pour faciliter l'importation de fichiers, en particulier des images ou d'autres ressources.
Classe Game :
python
class Game: def __init__(self): # Initialisation générale pygame.init() self.screen = pygame.display.set_mode((WIDTH, HEIGTH)) pygame.display.set_caption("Zelda with Python") pygame_icon = pygame.image.load("../Graphics/Test/Player.png") pygame.display.set_icon(pygame_icon) self.clock = pygame.time.Clock() self.level = Level() # Musique main_sound = pygame.mixer.Sound("../Audio/Main.ogg") main_sound.set_volume(0.5) main_sound.play(loops=-1) -
__init__est le constructeur de la classeGame.- Il initialise Pygame, configure la fenêtre du jeu, charge une icône, crée une horloge pour gérer le temps du jeu, et instancie un objet de la classe
Level. - Il charge également un fichier audio (Main.ogg) et le joue en boucle.
Méthode run :
python
def run(self): while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_m: self.level.toggle_menu() self.screen.fill(WATER_COLOR) self.level.run() pygame.display.update() self.clock.tick(FPS) -
- Cette méthode gère la boucle principale du jeu.
- Elle vérifie les événements Pygame, tels que la fermeture de la fenêtre ou l'appui sur la touche 'm' pour activer/désactiver le menu.
- Elle remplit l'écran avec une couleur d'eau définie (
WATER_COLOR), exécute la logique du niveau, met à jour l'affichage, puis attend un certain temps pour maintenir un taux de rafraîchissement constant (FPS).
Point d'entrée du programme :
python
if __name__ == "__main__": game = Game() game.run() - Le programme principal instancie la classe
Gameet exécute sa méthoderunlorsque le script est exécuté.