我正在尝试使程序在按下W时检测到,以将乌龟对象向前移动。但是,要使其始终运行,我需要一会儿True语句。但是,因为True阻止了将来的代码运行,但我的程序由于未到达程序的done()部分而停止了响应。
该程序适用于Windows 10(在Python 3.7上)。我尝试将它放在done()之后无济于事。
这是我的代码。
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没有响应
答案 0 :(得分:0)
添加另一个条件,告诉您的程序退出循环(break
语句),例如按S键:
while True:
if keyDetect() == "b'w'":
linerunner.forward(1)
elif keyDetect() == "b's'":
break
done()