Aggiungi gestione dei tasti per il controllo del gioco e modifica il metodo di chiusura della finestra
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user