Преобразовать строку в pygame.key - PullRequest
2 голосов
/ 01 февраля 2020

Для моей игры мне нужно взять строку, состоящую из одного символа, и проверить, была ли нажата клавиша с этим персонажем (я использую pygame). Например, если бы строка была 'a', мне нужно было бы что-то вроде этого:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        quit()
    elif event.type == pygame.KEYDOWN:
        if event.key == K_a:
   [...]

Я могу просто сделать много if операторов для каждого ключа, но я надеюсь, что быстрее way

[Edit] Я пытался использовать функцию ord:

[...]
  if event.key == ord(key): #key is my string's name
[...]

, но теперь, по какой-то причине, независимо от того, нажимаю ли я w или s, event.key остается тем же номер

1 Ответ

1 голос
/ 01 февраля 2020

Вы можете использовать ord(c), чтобы получить обычное число, представляющее символ. Например:

ch = 'a'

while True:

    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:

            if event.key == ord(ch):
                # [...]

Но заметьте, if event.unicode == ch:, сделает то же самое.

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