Aggiungi gestione dei tasti per il controllo del gioco e modifica il metodo di chiusura della finestra

This commit is contained in:
2024-12-16 01:14:10 +01:00
parent 9f4e2dcc2e
commit 939e81ca82
2 changed files with 13 additions and 8 deletions
+4
View File
@@ -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)
+9 -8
View File
@@ -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()