Browse Source

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

master
Matteo Benedetto 1 year ago
parent
commit
939e81ca82
  1. 4
      engine/sdl2.py
  2. 15
      rats.py

4
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)

15
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()

Loading…
Cancel
Save