Я использую проклятия в python2.7 для управления роботом. Я хотел бы управлять им, например. ключ w
, чтобы сказать, что он должен идти вперед. Вот мой код, отбрасывается все элементы управления роботом:Используйте проклятия для немедленного обнаружения ввода пользователя
import curses
from time import sleep
if __name__ == "__main__":
shell = curses.initscr()
shell.nodelay(True)
while True:
key = shell.getch()
if key == 119:
print("key w pressed")
sleep(0.03)
Это работает отлично, за исключением того, что я должен нажать ввести для ключа, чтобы быть признанным. Поэтому я могу нажать w
несколько раз, и когда я нажимаю enter, робот выполняет именно то, что он должен делать, или в этом примере текст key w pressed
появляется столько раз, сколько я его нажал. Но я хотел бы, чтобы это произошло немедленно, т. Е. Без нажатия клавиши ввода. Как это можно достичь?
добавить 'curses.cbreak()' в вашу настройку. – meuh
Это помогает, спасибо. Это также ломает мою оболочку, но я думаю, что смогу выяснить, как это исправить. Если вы поднимете этот комментарий к ответу, я его приму. – pfnuesel