Как выйти из необработанного ввода - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь, чтобы этот блок кода работал, но когда я пытаюсь использовать quit (), подсказка для raw_input все еще есть, можно ли это завершить?

import threading
import sys

def monsterHit():
    print "you died"
    sys.exit(0)

t = threading.Timer(1.25, monsterHit)
t.start() 

print "Type \"jump\" before the monster charges you! "
jumpCheck = raw_input("> ")
if jumpCheck == "jump":
    t.cancel()
    print"you dodged,good job!"
else:
     monsterHit()

1 Ответ

0 голосов
/ 13 января 2019

Я занимался копанием сомов и нашел решение просто записывать нажатия клавиш, я бы не назвал это оптимальным, но я думаю, что это несколько решает вашу проблему: /

import sys
import time
import msvcrt

def monsterHit():
    print("you died")
    sys.exit(0)

print("Type \"jump\" before the monster charges you! ")

jumpCheck = "> "
timer = time.time()
while 1.25 >= time.time()-timer:
    if msvcrt.kbhit():
        key = msvcrt.getch()
        if key == b'\r':
            break
        jumpCheck += key.decode("utf-8")
        sys.stdout.flush()
        sys.stdout.write("\r"+jumpCheck)

print("")
if jumpCheck == "> jump":
    print("you dodged,good job!")
else:
     monsterHit()

о, и как примечание, я действительно думаю, что 1,25 секунды - это быстрый способ, я мог только передать его, зная, что набрать xD

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