Определить, нажал ли пользователь @ войти в pygame - PullRequest
0 голосов
/ 22 мая 2018

Как я могу определить, нажал ли пользователь знак @ в pygame?

На некоторых клавиатурах мне нужно нажать SHIFT + 2, на других ALT + V и т. Д.

Это работает:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_RETURN:
        print("ENTER key pressed")

Это не:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_AT:
        print("@ sign pressed")

Это работает только на одном типе клавиатуры:

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_2:
        if pygame.key.get_mods() & pygame.KMOD_SHIFT:
            print("@ sign pressed")

Так как я могу обнаружить, если пользователь нажимает@ не зная типа клавиатуры, которую они используют?

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

Ответы [ 2 ]

0 голосов
/ 12 июля 2018

Согласно комментариям @ Эрика и @ Золтан решение состоит в следующем:

if event.type == pygame.KEYDOWN:
     if event.unicode == '@':
           print("@ sign pressed")

Событие KEYDOWN также имеет атрибут Unicode.

0 голосов
/ 12 июля 2018

Pygame event.unicode возвращает фактический вывод (в формате Unicode), если он был напечатан на чем-то вроде блокнота, а не на указанной клавише.

Так что это должно работать:

if event.type == pygame.KEYDOWN:
     if event.unicode == '@':
           print("@ sign pressed")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...