Modifica la gestione dei tasti nella classe GameWindow; aggiungi supporto per il rilascio dei tasti e migliora la logica di scrolling

This commit is contained in:
2024-12-23 16:23:40 +01:00
parent 3be35d07ee
commit 2e4d0b8726
3 changed files with 27 additions and 21 deletions
+8 -7
View File
@@ -32,7 +32,7 @@ class GameWindow:
self.factory = sdl2.ext.SpriteFactory(renderer=self.renderer)
self.fonts = self.generate_fonts("assets/decterm.ttf")
self.running = True
self.key_callback = key_callback
self.key_down, self.key_up = key_callback
self.performance = 0
def load_joystick(self):
@@ -140,17 +140,18 @@ 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:
elif event.type == sdl2.SDL_KEYDOWN and self.key_down:
key = sdl2.SDL_GetKeyName(event.key.keysym.sym).decode('utf-8')
self.key_callback(key)
elif event.type == sdl2.SDL_KEYUP and self.key_callback:
self.key_down(key)
elif event.type == sdl2.SDL_KEYUP and self.key_down:
key = sdl2.SDL_GetKeyName(event.key.keysym.sym).decode('utf-8') + "Release"
self.key_callback(key)
self.key_up(key)
print(key)
elif event.type == sdl2.SDL_MOUSEMOTION:
self.key_callback("mouse", coords=(event.motion.x, event.motion.y))
self.key_down("mouse", coords=(event.motion.x, event.motion.y))
elif event.type == sdl2.SDL_JOYBUTTONDOWN:
key = event.jbutton.button
self.key_callback(key)
self.key_down(key)
# Disegna qui gli sprite
self.renderer.present()