在按键时关闭python海龟模块游戏
我一直在尝试使用Python 3中的海龟模块制作蛇游戏。 我想在按下Esc键两次时关闭程序。以下是我到目前为止所尝试的,但我似乎无法让它工作(我以前导入了sys模块): 任何帮助都将不胜感激 编辑在按键时关闭python海龟模块游戏,python,python-3.x,turtle-graphics,Python,Python 3.x,Turtle Graphics,我一直在尝试使用Python 3中的海龟模块制作蛇游戏。 我想在按下Esc键两次时关闭程序。以下是我到目前为止所尝试的,但我似乎无法让它工作(我以前导入了sys模块): 任何帮助都将不胜感激 编辑 我没有使用sys.exit(),而是使用window.bye(),这似乎很好。谢谢 如果我添加mainloop(),它从系统中获取键/鼠标事件并发送到turtle的窗口,代码对我有效。您还可以使用window.bye()退出mainloop() 我大体上同意@furas(+1),但我会更简单一些,因为
我没有使用sys.exit(),而是使用window.bye(),这似乎很好。谢谢 如果我添加
mainloop()
,它从系统中获取键/鼠标事件并发送到turtle的窗口,代码对我有效。您还可以使用window.bye()
退出mainloop()
我大体上同意@furas(+1),但我会更简单一些,因为您调用的某些方法在使用它们的上下文中实际上不是ops:
from turtle import Screen, Turtle
def close():
window.onkeypress(window.bye, "Escape")
close = Turtle()
close.hideturtle()
# close.color("white")
close.write("Press ESC again to exit", align="center", font=("Courier", 24, "normal"))
window = Screen()
window.onkeypress(close, "Escape")
window.listen()
window.mainloop()
它究竟是如何不起作用的?你期待什么?发生了什么?你能数一数你按了多少次escape吗。如果在第一个和第二个ESC之间按不同的键怎么办?在末尾添加
window.mainloop()
。@furas如果我使用您的解决方案按ESC键两次,程序将结束(正如我所希望的那样)。如果我在第一次和第二次esc之间按另一个键,什么也不会发生。非常感谢!!window.bye()似乎解决了这个问题。现在它工作得很好!!
import turtle
def exitprogram():
window.bye()
def close():
close = turtle.Turtle()
close.speed(0)
#close.color("white")
close.penup()
close.hideturtle()
close.goto(0,0)
close.write("Press ESC again to exit", align="center", font = ("Courier", 24, "normal"))
window.listen()
window.onkeypress(exitprogram, "Escape")
window = turtle.Screen()
window.listen()
window.onkeypress(close, "Escape")
window.mainloop()
from turtle import Screen, Turtle
def close():
window.onkeypress(window.bye, "Escape")
close = Turtle()
close.hideturtle()
# close.color("white")
close.write("Press ESC again to exit", align="center", font=("Courier", 24, "normal"))
window = Screen()
window.onkeypress(close, "Escape")
window.listen()
window.mainloop()