Прослушивание Global Keydown определенного ключа - PullRequest
0 голосов
/ 26 февраля 2019

используя Pygame, у меня в настоящее время есть этот цикл:

def quest_loop():
    i = 0
    while i < len(quests):
        event = pygame.event.wait()
        if event.type == KEYDOWN and event.key == K_F4:
            screen.fill(BLACK)
            message_display(*normal_message, quests[i], wrap_text)
            i += 1
            pygame.event.clear()

Я создал небольшое наложение для игры, которая перебирает массив, который я сгенерировал ранее в коде.

Это работаетотлично, но только когда у меня выбрано окно пигмеев.Я хотел бы, чтобы он слушал определенное нажатие клавиши F4, даже если он не выбран.Я попытался использовать модуль win32api, но без особого успеха.Хотя мне удалось заставить код работать, было множество проблем, которые я не смог решить.

Спасибо за любую помощь.

Обновление:

Я еще раз посмотрел на win32api и сумел устранить повторяющуюся проблему, которая возникла у меня (одно нажатие клавишиперебрал бы мой список несколько раз).Этот код решает эту проблему:

`def key_press():
    global was_pressed
    if was_pressed == False and quest_forward() == True:
        was_pressed = True
        return True
    if was_pressed == True and quest_forward() == True:
        return False
    if was_pressed == True and quest_forward() == False:
        was_pressed = False
        return False`

Следующая проблема, с которой я пытаюсь разобраться, заключается в том, что ввод не распознается, если окно пигмея не имеет фокуса.Текущее состояние наложения не является совершенно неосуществимым, просто немного раздражает.Я посмотрел на pyHook, но я не могу вставить pythoncom.PumpMessages() в мой код и заставить его работать.

РЕДАКТИРОВАТЬ: После попытки нескольких разных вещей, кажется, мой обработчик событий не может работать, пока я пытаюсь сохранить окно Pygame, я перешел к попытке с помощью wxPython и win32api.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...