微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pygame.quit() 可靠吗?

如何解决pygame.quit() 可靠吗?

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

if keys[pygame.K_ESCAPE]:
    pygame.quit()

还有这个

if exit_button.colliderect(cursor_rect) and click==1:
    pygame.quit()

当点击退出按钮时,游戏关闭没有问题。光标紧接着在短时间内显示小加载符号。但是,当按下转义键时,窗口会关闭,但会弹出一条消息,“无法执行脚本”。我在 Windows 10 上,游戏是在 pycharm 上用 pygame 制作的,而 exe 是用 pyinstaller --onefile -w game.py 制作的。

也许这是代码中的一个错误,但它在 IDE 中运行良好,我没有做任何不同的事情。我还可以确认它没有丢失图像或媒体。谢谢。

解决方法

pygame.quit() 不会退出您的程序,它会取消初始化所有 pygame 模块。当您希望程序继续但没有 pygame 时使用它。如果您在调用 pygame.quit() 后使用某些 pygame 函数,您的程序将会崩溃。

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

,

只是想补充一点。

正如您在大多数 pygame projects (source) 中看到的那样,我们同时使用 pygame.quit() sys.exit()

假设您的目的是关闭 pygame 程序和运行它的 Python 脚本,您将使用类似下面的代码。

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

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

这就是我为我创建的几个项目所做的,并且我在退出程序时从未出现任何错误,无论是手动还是通过代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。