57 lines
867 B
Python
57 lines
867 B
Python
|
|
|
|
import pygame
|
|
|
|
from typing import List
|
|
|
|
|
|
|
|
class InputEvents:
|
|
|
|
def __init__(self):
|
|
|
|
self.quit_requested = False
|
|
|
|
|
|
|
|
def poll_events(self) -> List[pygame.event.Event]:
|
|
|
|
raw_events = pygame.event.get()
|
|
|
|
filtered_events = []
|
|
|
|
|
|
|
|
for event in raw_events:
|
|
|
|
if self._handle_quit(event):
|
|
|
|
continue
|
|
|
|
filtered_events.append(event)
|
|
|
|
|
|
|
|
return filtered_events
|
|
|
|
|
|
|
|
def _handle_quit(self, event: pygame.event.Event) -> bool:
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
self.quit_requested = True
|
|
|
|
return True
|
|
|
|
elif event.type == pygame.KEYDOWN:
|
|
|
|
if event.key == pygame.K_ESCAPE:
|
|
|
|
self.quit_requested = True
|
|
|
|
return True
|
|
|
|
return False
|
|
|