Как получить ввод с клавиатуры в реальном времени в Python?

Это возможно? Каждый ответ, на который я смотрел, не то, что я хочу. Что я делаю, так это что-то вроде omega-rpg (это потрясающая маленькая текстовая ролевая игра на основе Debian), но на Python вместо C. Я поковырялся и нашел кое-что, но ничего, что имело бы отношение к тому, что я делаю. Просто проще использовать raw_input() / input или было бы более эффективно использовать для этого какой-то API?

ЧТОБЫ ОЧИСТИТЬ:

Мне нужна система ввода с клавиатуры в реальном времени на Python, но я не знаю, проще ли использовать API или просто raw_input() / input(). Если лучше использовать API, то какой из них лучше всего использовать начинающему программисту?

ДОПОЛНИТЕЛЬНЫЙ:

Любое решение будет использовано в ТЕКСТОВОЙ ИГРЕ! Учтите это при ответе, пожалуйста.


person user1610406    schedule 04.12.2012    source источник


Ответы (3)


Я думаю, что использование raw_input() в цикле while является приемлемым решением.

Вы также можете изучить что-то вроде pygame, которое будет обрабатывать основной игровой цикл для вас, а также предлагает обработку ввода.

person timc    schedule 04.12.2012

Если вы используете Windows, вы можете использовать модуль msvcrt. В частности, посмотрите на kbhit, чтобы проверить, ожидает ли клавиша чтения, и на getch, чтобы прочитать нажатие клавиши. Пользователю не нужно нажимать enter, чтобы нажатие клавиш стало доступным для вашей программы.

person Tim    schedule 04.12.2012
comment
Я бы предпочел что-то кросс-совместимое, но спасибо за ответ, я буду иметь это в виду C: - person user1610406; 04.12.2012

Вы можете изучить PyHook. Он предоставляет обратные вызовы для чтения событий мыши и клавиатуры.

person Manoj I    schedule 04.12.2012