Я думаю, что обычно есть события KEYDOWN
и KEYUP
.Если ваша проблема заключается в том, что один клик может быть удержан слишком долго, вы можете использовать таймер, чтобы игнорировать несколько KEYDOWN
событий, которые короче, скажем, полсекунды.Я думаю, что для отказоустойчивости вы можете попробовать оба варианта: прослушивание события KEYUP
, а также включение таймера для нескольких событий KEYDOWN
.
Пример кода, который я нашел на сайте PyGame:
def check_events(settings, screen, tile_map):
"""Watch for keyboard and mouse events"""
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
check_keydown_events(settings, event, screen, tile_map)
elif event.type == pygame.KEYUP:
check_keyup_events(settings, event, screen, tile_map)