#!/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()