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.factory = sdl2.ext.SpriteFactory(renderer=self.renderer)
|
||||||
self.fonts = self.generate_fonts("assets/AmaticSC-Regular.ttf")
|
self.fonts = self.generate_fonts("assets/AmaticSC-Regular.ttf")
|
||||||
self.running = True
|
self.running = True
|
||||||
|
self.key_callback = key_callback
|
||||||
|
|
||||||
def generate_fonts(self,font_file):
|
def generate_fonts(self,font_file):
|
||||||
fonts = {}
|
fonts = {}
|
||||||
@@ -87,6 +88,9 @@ class GameWindow:
|
|||||||
for event in events:
|
for event in events:
|
||||||
if event.type == sdl2.SDL_QUIT:
|
if event.type == sdl2.SDL_QUIT:
|
||||||
self.running = False
|
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
|
# Disegna qui gli sprite
|
||||||
self.renderer.present()
|
self.renderer.present()
|
||||||
sdl2.SDL_Delay(self.delay)
|
sdl2.SDL_Delay(self.delay)
|
||||||
|
|||||||
@@ -62,17 +62,18 @@ class MiceMaze:
|
|||||||
self.draw_maze()
|
self.draw_maze()
|
||||||
self.engine.mainloop(update=self.update_maze, bg_update=self.draw_maze)
|
self.engine.mainloop(update=self.update_maze, bg_update=self.draw_maze)
|
||||||
|
|
||||||
def key_pressed(self, event):
|
def key_pressed(self, key):
|
||||||
if event.keysym == "q":
|
print(key)
|
||||||
self.engine.window.destroy()
|
if key == "Q":
|
||||||
elif event.keysym == "r":
|
self.engine.window.close()
|
||||||
|
elif key == "R":
|
||||||
self.new_rat()
|
self.new_rat()
|
||||||
elif event.keysym == "d":
|
elif key == "D":
|
||||||
if self.units:
|
if self.units:
|
||||||
self.units[random.choice(list(self.units.keys()))].die()
|
self.units[random.choice(list(self.units.keys()))].die()
|
||||||
elif event.keysym == "m":
|
elif key == "M":
|
||||||
self.audio = not self.audio
|
self.audio = not self.audio
|
||||||
elif event.keysym == "s":
|
elif key == "S":
|
||||||
profiler.disable()
|
profiler.disable()
|
||||||
stats = pstats.Stats(profiler).sort_stats('cumtime')
|
stats = pstats.Stats(profiler).sort_stats('cumtime')
|
||||||
stats.print_stats()
|
stats.print_stats()
|
||||||
@@ -95,4 +96,4 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
solver = MiceMaze('maze.json')
|
solver = MiceMaze('maze.json')
|
||||||
solver.run()
|
solver.run()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user