我最近做了一个小游戏,然后用pyinstaller把它变成一个应用程序。在运行时,有两种方法来关闭它。它是全屏的,所以不包括点击红色的x按钮,但基本上我有这个
if keys[pygame.K_ESCAPE]:
pygame.quit()还有这个
if exit_button.colliderect(cursor_rect) and click==1:
pygame.quit()当单击“退出”按钮时,游戏就会关闭,而不会出现问题。光标显示紧接其后片刻的小加载符号。然而,当按下转义时,窗口会关闭,但是会弹出一条消息,上面写着“未能执行脚本”。我在windows 10上,游戏是用吡咯烷酮制作的,而exe是用pyinstaller --onefile -w game.py制作的。
也许这是代码中的一个bug,但是它在IDE中运行得非常好,而且我没有做什么不同的事情。我也可以确认它没有丢失图像或媒体。谢谢。
发布于 2020-12-23 19:39:33
pygame.quit()不退出你的程序,它不初始化所有的游戏模块。它是指当你想要程序继续使用,但不玩游戏。如果在调用pygame.quit()后使用特定的游戏函数,程序就会崩溃。
如果您想要终止程序,只需让程序自然结束或调用quit()。很多人喜欢在调用pygame.quit()之前先调用quit(),但这实际上是不必要的。
发布于 2020-12-25 07:08:57
只是想加点东西。
正如您在大多数游戏项目(来源)中所看到的,我们同时使用pygame.quit()和sys.exit()。
假设您的目的是关闭游戏程序和它正在运行的Python,那么您将使用如下代码。
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()首先调用pygame.quit()来停止在运行pygame.init()时激活的所有pygame模块,然后是停止python脚本的sys.exit()。
这就是我为我创建的几个项目所做的工作,在退出程序时,我从来没有遇到过任何错误,无论是手动的还是通过代码的。
https://stackoverflow.com/questions/65429957
复制相似问题