Следующий код pygame перестает работать корректно после обновления с ubuntu 16.04 до ubuntu 18.04.
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print "KEY:", event.key
if event.key == pygame.K_ESCAPE:
# The code here is executed when "Esc" is pressed.
elif event.key == pygame.K_f:
# Never happens even when "f" is pressed.
Код печатает " Key: 193
", когда я нажимаю f
вместо ожидаемого " Key: 102
".
Любые идеи, что может быть неправильным?
У меня есть несколько раскладок клавиатуры, и я уверен, что когда это происходит, я использую "английский".
Если вы абсолютно уверены, что настройки вашей клавиатуры не изменились с момента изменения версии Ubuntu, вы можете решить эту проблему, сравнив значения unicode:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print "KEY:", event.key
if event.key == pygame.K_ESCAPE:
# The code here is executed when "Esc" is pressed.
elif event.unicode == 'f':
...
193
принадлежит символуKP_F
в SDL, который является клавиатурой F. У вас есть и используется ли буквенно-цифровая клавиатура? Так как это довольно редко, в Pygame отсутствуют эти константы.