重新启动脚本后退出python脚本到终端

时间:2014-05-30 18:39:25

标签: python reboot

本周我一直在学习python,这是从一个蛇游戏教程开始的。然后我添加了游戏功能,使其更加精彩。我添加的一个功能是在蛇死后重启游戏的能力。在死亡时,出现一个屏幕,提示用户按y或n重新开始游戏。按y总是重新启动游戏,我很满意。按n退出脚本返回终端,但仅限游戏只播放一次。如果游戏播放两次,则选择n,屏幕变黑,一切都没有响应。蛇死后,会调用一个函数。还有一些其他的零碎,但我相信这就是问题发生的地方:

while True:
    for evt in pygame.event.get():
        if evt.key == ord('y')
            restart = "y"
            break
        elif evt.key == ord('n'):
            restart = "noty"
            break
if restart == 'y'
    os.execl(sys.executable, sys.executable, × sys.argv)
else:
    pygame.quit()
    sys.exit()
    os.exit()

提前致谢

1 个答案:

答案 0 :(得分:0)

你可以退出循环。

while True:
    for evt in pygame.event.get():
        if evt.key == ord('y')
            restart = "y"
            break
        elif evt.key == ord('n'):
            pygame.quit() # just quit here 
            sys.exit()
if restart == 'y':
    os.execl(sys.executable, sys.executable,sys.argv)

os.exit()

之后我还认为没有os._exit() sys.exit() sys.exit(n). _exit()

来自docs

注意退出的标准方法{{1}}通常只应在fork()之后的子进程中使用。