Как вы используете msvcrt.getch для извлечения и использования ввода?
Мне нужно создать программу / игру на python, где пользователь быстро вводит 2 клавиши, такие как клавиши z или x, и это заставляет их персонажа двигаться вперед при каждом нажатии в правильном порядке. Я провел много исследований и решил, что должен использовать msvcrt.getch() для получения ввода, но всякий раз, когда я пытаюсь это сделать, он сохраняет ввод как байт, который я не могу использовать, я относительно новичок в программировании и мог использовать некоторую помощь, объясняя функцию.
1 ответ
Вам нужно декодировать возвращаемое значение в str
объект:
msvcrt.getch().decode('ASCII')
интерпретировал бы байт как кодовую точку ASCII, например. Возможно, вам придется использовать другую кодировку в зависимости от раскладки клавиатуры и локали, но msvcrt.getch()
API специально работает только с символами ASCII в соответствии с документацией:
Модуль реализует как обычный, так и широкий варианты char консольного интерфейса ввода-вывода api. Обычный API работает только с символами ASCII и имеет ограниченное применение для интернационализированных приложений. По возможности следует использовать широкий API-интерфейс char.
Вы, вероятно, хотите использовать msvcrt.getwch()
вместо этого, чтобы получить значения Unicode напрямую; метод поддерживает не только кодовые точки ASCII.