Задать вопрос
SelfiAS
@SelfiAS
▬ PYTHON ▬ JUNIOR ▬

Как сделать обработку нажатия клавиш в питон?

Как сделать что-то похожее на "pygame.event.get()"? Нигде не нашел нужной инфы. Желательно нужна структура примерно как в pygame, точнее как-то так:
for e in pygame.event.get():
   print(e)


P.S. Если, что моя цель сделать еще один pygame.
  • Вопрос задан
  • 10437 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@newpy
web-dev
можно пользоваться так напрямую:
import msvcrt

msvcrt.getch() # вернет строку байтовую

Но можно и правильнее в твоем контексте работать со средствами pygame. Есть модуль для работы с клавиатурой pygame.key
например через
pygame.key.get_pressed()

Подробнее тут:
https://www.pygame.org/docs/ref/key.html

Скорее всего pygame.event.get() возвращает список событий. В цикле у тебя как раз каждое событие это "e".
Надо просто посмотреть доку, скорее всего одно из событий, нажатая клавиша, будет иметь тип относящийся к pygame.key
то есть одно из событий будет как раз условно e == pygame.key у которого скорее всего можно будет вызвать e.get_pressed(). Точнее не скажу, у меня pygame не стоит, я с ним не работал. Просто судя по доке это точно должно помочь. Или покажи что выводит твой цикл из приведенного тобой кода в вопросе.
Ответ написан
Комментировать
@kgbplus
import win32api as wapi

keyList = ["\b"]
for char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ 123456789,.'£$/\\":
    keyList.append(char)

def key_check():
    keys = []
    for key in keyList:
        if wapi.GetAsyncKeyState(ord(key)):
            keys.append(key)
return keys

GetAsyncKeyState судя по https://msdn.microsoft.com/en-us/library/windows/d...
как раз сообщает было ли нажатие с момента последнего обращения к ней

PS: Это все под Windows
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы