Pygame не ловит события нажатия клавиш на Mac

Когда я пытаюсь поймать нажатые клавиши, они печатаются в терминале, но не распознаются pygame и скриптом. Скрипт выполняется следующим образом:

>>>import scriptname
>>>scriptname.wa()

файл имени скрипта: импорт pygame из pygame.locals import *

def wa():
    pygame.init()
    screen = pygame.display.set_mode((640, 480), 0, 32)

    alive_key = True

    while alive_key:
        for event in pygame.event.get():
            if event.type == QUIT:
                alive_key = False
            elif event.type == KEYDOWN and event.key == K_q:
                print '\nThis is not happening\n'

        screen.fill((0, 0, 0))

        if pygame.mouse.get_pressed()[0]:
            pygame.event.post(
              pygame.event.Event(KEYDOWN, key=K_q, mod=0, unicode=u'q'))

        pygame.display.update()

    pygame.quit()

Если события создаются при нажатии мыши (как представлено в коде), они работают.

Я использую OS X 10.8.5, python 2.7, pygame2.7 1.9.1. Все отлично работает в Windows 7 с аналогичной конфигурацией.

Спасибо!

1 ответ

Измените свой код на:

elif event.type == KEYDOWN or event.type == pygame.KEYDOWN:
    # for testing purpose
    print event 

    if event.key == pygame.K_q:
        print '\nThis is not happening\n

Я использую OS X 10.9.5, python 2.7.7, pygame-1.9.2pre-py2.7-macosx10.7. Была такая же проблема, как у вас ранее. Я нашел это решение здесь: http://content.gpwiki.org/index.php/Python:Pygame_keyboard_input

Я думаю, что это не вина Мак, возможно.

Другие вопросы по тегам