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
Я думаю, что это не вина Мак, возможно.