有没有办法让一段时间真正的语句运行,但让以后的代码也运行?

问题描述 投票:0回答:1

当我按下W时,我正试图检测一个程序,以便向前移动一个乌龟对象。但是,要让它一直运行,我需要一段时间的True语句。但是,因为虽然True会阻止将来的代码运行,但我的程序停止响应,因为它没有到达我的程序的done()部分。

此程序适用于Python 3.7上的Windows 10。我试过把它放在完成()之后无济于事。

这是我的代码。

from turtle import *
import msvcrt

def keyDetect():
    while True:
       if msvcrt.kbhit():
           key = msvcrt.getch()
           return key

linerunner = Turtle()
while True:
    if keyDetect() == "b'w'":
        linerunner.forward(1)

done()

预期结果:按下W时,乌龟对象将以1为增量向前移动,直到我停止按住它为止。

实际结果:Python.exe没有响应

python python-3.x
1个回答
0
投票

添加另一个条件,告诉程序退出循环(break语句),就像按下S键一样:

while True:
    if keyDetect() == "b'w'":
        linerunner.forward(1)
    elif keyDetect() == "b's'":
        break
done()
© www.soinside.com 2019 - 2024. All rights reserved.