python pygame.get_pressed() проверка нажатой клавиши дает два срабатывания

Всем доброго времени суток!

Я пытаюсь обработать нажатия клавиш

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

        keys = pygame.key.get_pressed()
        if keys[pygame.K_SPACE]:
            print("Нажата клавиша SPACE'")
        elif keys[pygame.K_ESCAPE]:
            print("Нажата клавиша 'Esc'")
            print('[exited]')
            pygame.quit()
            sys.exit()

        pygame.event.pump()

При работе программы после нажатия клавиши SPACE появляются два сообщения о нажатии клавиши SPACE. Вот, собственно и вопрос: что надо добавить/изменить?

Заранее благодарен.


Ответы (1 шт):

Автор решения: arnold

Вот как вариант:

from pynput.keyboard import Listener as Kl, Key
import datetime

rand = ''


def key_pressed(key):
    global rand, path
    a = str(key).replace("Key.", "")
    if a.find("'") == -1:
        a = "'" + a + "'"
    time = str(datetime.datetime.today())[11:-4]
    time = time.replace(":", ".")
    string = f'{time} - pressed {a}'
    print(string)

    if key == Key.esc:
        return False


def key_released(key):
    pass


with Kl(on_press=key_pressed, on_released=key_released) as listener:
    listener.join()
→ Ссылка