首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pygame.quit()可靠吗?

pygame.quit()可靠吗?
EN

Stack Overflow用户
提问于 2020-12-23 19:32:42
回答 2查看 262关注 0票数 2

我最近做了一个小游戏,然后用pyinstaller把它变成一个应用程序。在运行时,有两种方法来关闭它。它是全屏的,所以不包括点击红色的x按钮,但基本上我有这个

代码语言:javascript
复制
if keys[pygame.K_ESCAPE]:
    pygame.quit()

还有这个

代码语言:javascript
复制
if exit_button.colliderect(cursor_rect) and click==1:
    pygame.quit()

当单击“退出”按钮时,游戏就会关闭,而不会出现问题。光标显示紧接其后片刻的小加载符号。然而,当按下转义时,窗口会关闭,但是会弹出一条消息,上面写着“未能执行脚本”。我在windows 10上,游戏是用吡咯烷酮制作的,而exe是用pyinstaller --onefile -w game.py制作的。

也许这是代码中的一个bug,但是它在IDE中运行得非常好,而且我没有做什么不同的事情。我也可以确认它没有丢失图像或媒体。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-23 19:39:33

pygame.quit()不退出你的程序,它不初始化所有的游戏模块。它是指当你想要程序继续使用,但不玩游戏。如果在调用pygame.quit()后使用特定的游戏函数,程序就会崩溃。

如果您想要终止程序,只需让程序自然结束或调用quit()。很多人喜欢在调用pygame.quit()之前先调用quit(),但这实际上是不必要的。

票数 5
EN

Stack Overflow用户

发布于 2020-12-25 07:08:57

只是想加点东西。

正如您在大多数游戏项目(来源)中所看到的,我们同时使用pygame.quit()sys.exit()

假设您的目的是关闭游戏程序和它正在运行的Python,那么您将使用如下代码。

代码语言:javascript
复制
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

首先调用pygame.quit()来停止在运行pygame.init()时激活的所有pygame模块,然后是停止python脚本的sys.exit()

这就是我为我创建的几个项目所做的工作,在退出程序时,我从来没有遇到过任何错误,无论是手动的还是通过代码的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65429957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档