From 939e81ca829769ae73ad486c9e0c0f425e89ed5a Mon Sep 17 00:00:00 2001 From: Matteo Benedetto Date: Mon, 16 Dec 2024 01:14:10 +0100 Subject: [PATCH] Aggiungi gestione dei tasti per il controllo del gioco e modifica il metodo di chiusura della finestra --- engine/sdl2.py | 4 ++++ rats.py | 17 +++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/engine/sdl2.py b/engine/sdl2.py index 48e2ba2..cea9718 100644 --- a/engine/sdl2.py +++ b/engine/sdl2.py @@ -23,6 +23,7 @@ class GameWindow: self.factory = sdl2.ext.SpriteFactory(renderer=self.renderer) self.fonts = self.generate_fonts("assets/AmaticSC-Regular.ttf") self.running = True + self.key_callback = key_callback def generate_fonts(self,font_file): fonts = {} @@ -87,6 +88,9 @@ class GameWindow: for event in events: if event.type == sdl2.SDL_QUIT: self.running = False + elif event.type == sdl2.SDL_KEYDOWN and self.key_callback: + key = sdl2.SDL_GetKeyName(event.key.keysym.sym).decode('utf-8') + self.key_callback(key) # Disegna qui gli sprite self.renderer.present() sdl2.SDL_Delay(self.delay) diff --git a/rats.py b/rats.py index 42b940b..e222bc4 100644 --- a/rats.py +++ b/rats.py @@ -62,17 +62,18 @@ class MiceMaze: self.draw_maze() self.engine.mainloop(update=self.update_maze, bg_update=self.draw_maze) - def key_pressed(self, event): - if event.keysym == "q": - self.engine.window.destroy() - elif event.keysym == "r": + def key_pressed(self, key): + print(key) + if key == "Q": + self.engine.window.close() + elif key == "R": self.new_rat() - elif event.keysym == "d": + elif key == "D": if self.units: self.units[random.choice(list(self.units.keys()))].die() - elif event.keysym == "m": + elif key == "M": self.audio = not self.audio - elif event.keysym == "s": + elif key == "S": profiler.disable() stats = pstats.Stats(profiler).sort_stats('cumtime') stats.print_stats() @@ -95,4 +96,4 @@ if __name__ == "__main__": solver = MiceMaze('maze.json') solver.run() - +