4 changed files with 57 additions and 1 deletions
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3 |
||||
|
||||
import sys |
||||
import os |
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__))) |
||||
|
||||
from engine import sdl2 as engine |
||||
|
||||
class KeyTester: |
||||
def __init__(self): |
||||
self.render_engine = engine.GameWindow(800, 600, 1, "Key Tester", |
||||
key_callback=(self.key_pressed, self.key_released, None)) |
||||
self.pressed_keys = [] |
||||
self.last_key = "None" |
||||
|
||||
def key_pressed(self, key): |
||||
self.last_key = f"PRESSED: {key}" |
||||
if key not in self.pressed_keys: |
||||
self.pressed_keys.append(key) |
||||
print(f"Key pressed: {key}") |
||||
|
||||
def key_released(self, key): |
||||
self.last_key = f"RELEASED: {key}" |
||||
if key in self.pressed_keys: |
||||
self.pressed_keys.remove(key) |
||||
print(f"Key released: {key}") |
||||
|
||||
def update_display(self): |
||||
# Mostra l'ultimo tasto premuto/rilasciato |
||||
self.render_engine.draw_text(f"Last action: {self.last_key}", |
||||
self.render_engine.fonts[20], (10, 10), |
||||
engine.sdl2.ext.Color(255, 255, 255)) |
||||
|
||||
# Mostra tutti i tasti attualmente premuti |
||||
pressed_text = "Currently pressed: " + ", ".join(self.pressed_keys) if self.pressed_keys else "Currently pressed: None" |
||||
self.render_engine.draw_text(pressed_text, |
||||
self.render_engine.fonts[16], (10, 40), |
||||
engine.sdl2.ext.Color(255, 255, 255)) |
||||
|
||||
# Istruzioni |
||||
self.render_engine.draw_text("Press any key to test. ESC to quit.", |
||||
self.render_engine.fonts[14], (10, 80), |
||||
engine.sdl2.ext.Color(200, 200, 200)) |
||||
|
||||
# Continua il loop |
||||
self.render_engine.new_cycle(60, self.update_display) |
||||
|
||||
def run(self): |
||||
print("Key Tester started. Press keys to see them displayed.") |
||||
print("Press ESC to quit.") |
||||
self.render_engine.mainloop(update=self.update_display) |
||||
|
||||
if __name__ == "__main__": |
||||
tester = KeyTester() |
||||
tester.run() |
||||
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue