import pygame from pygame.event import Event class KeyEvent: KEY_LEFT: list[int] = [pygame.K_LEFT, pygame.K_a] KEY_RIGHT: list[int] = [pygame.K_RIGHT, pygame.K_d] KEY_UP: list[int] = [pygame.K_UP, pygame.K_w] KEY_DOWN: list[int] = [pygame.K_DOWN, pygame.K_s] KEY_SPACE: list[int] = [pygame.K_SPACE] KEY_ESCAPE: list[int] = [pygame.K_ESCAPE] KEY_ENTER: list[int] = [pygame.K_RETURN, pygame.K_KP_ENTER] def __init__(self, event: Event): self.event = event def is_key_down(self, key: int) -> bool: return self.event.type == pygame.KEYDOWN and self.event.key == key def is_key_up(self, key: int) -> bool: return self.event.type == pygame.KEYUP and self.event.key == key def is_keymap_down(self, keys: list[int]) -> bool: return self.event.type == pygame.KEYDOWN and self.event.key in keys def is_keymap_up(self, keys: list[int]) -> bool: return self.event.type == pygame.KEYUP and self.event.key in keys @staticmethod def create_events(event: list[Event]) -> list['KeyEvent']: return [KeyEvent(e) for e in event if e.type == pygame.KEYDOWN or e.type == pygame.KEYUP]