在按键时关闭python海龟模块游戏

在按键时关闭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),但我会更简单一些,因为

我一直在尝试使用Python 3中的海龟模块制作蛇游戏。 我想在按下Esc键两次时关闭程序。以下是我到目前为止所尝试的,但我似乎无法让它工作(我以前导入了sys模块):

任何帮助都将不胜感激

编辑
我没有使用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()