本周我一直在学习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()
提前致谢
答案 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()之后的子进程中使用。