【问题标题】:Pygame Freezes on Exit/QuitPygame 在退出/退出时冻结
【发布时间】:2016-08-27 14:46:44
【问题描述】:

我已经在互联网上对这个问题进行了研究,但我的情况没有解决方案...当我尝试使用 (X) 按钮关闭它时,窗口冻结。 正如我所说,我在其他帖子上没有遇到任何解决方案,所以我来这里寻求帮助。谢谢。

#!/usr/bin/python
import sys
import pygame
# initialize
pygame.init()
# colors 
black = (0,0,0)
white = (255,255,255)
red = (255,0,0)
green = (0,255,0)

# window size
w_size = [700,500]
main_screen = pygame.display.set_mode(w_size)
# Window info
pygame.display.set_caption("Cancer Cell")

# manage screen update time
clock=pygame.time.Clock()

#background image
bg_img = pygame.image.load("/img/bg_img.png").convert()

# Main loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    # GAME LOGIC - BEGINNING


    # -------- DRAWINGS - BEGINNING --------
    main_screen.blit(bg_img, [0,0])
    # -------- DRAWINGS - END ----------


    # update screen
    pygame.display.flip()
    clock.tick(20) # 20 FPS limit for loop.

pygame.quit()

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    您的代码在我的平台上运行良好。 我的平台: 科学 Linux 7 (RHEL 7) 蟒蛇:3.4.3 Pygame 版本:1.9.2b8 窗口管理器:Gnome3

    您的代码中也可能存在错误。 “/img/bg_img.png”建议绝对路径,有可能,但非常少见:)。

    【讨论】:

    • 如果图像的文件路径错误,他会看到错误pygame.error: Couldn't open /img/bg_img.png
    • The "/img/bg_img.png" suggest absolute path - 我的计算机/编辑器上有完整路径,只是在这里删除了它。 Mac - OSX El Capitan 10.11.6、Python 2.7.10、Pygame 1.9.1
    • 你也可以试试 os._exit(0) 代替 pygame.quit()。
    【解决方案2】:

    对我来说效果很好。请看下面的演示:

    【讨论】:

    • 我使用的是 MAC 10.11.6 - Python 2.7.10 - PyGame 1.9.1 我需要使用 Python 3 吗?或者..
    • 我正在使用 python 2.7 。你的代码对我来说效果很好。尝试调试事件是否被捕获。如果是,请尝试添加 sys.exit() 而不是 pygame.quit()
    • 当我在调试模式下运行并且没有捕获任何内容时,它可以完美运行。
    • 你用什么来编译你的代码?我用 Wing101
    • Wing101 看起来像一个 IDE。我只是将代码直接传递给 python 解释器。
    【解决方案3】:

    您的代码不仅可以在 linux Mate 17、python 2.7.6 上按预期工作,而且还可以使用 sys.exit() 而不是 pygame.quit() 或根本不使用,即没有 sys.exit()pygame.quit()

    【讨论】:

    • 所以我尝试运行另一个应用程序(由 Pygame 自己制作 - 一个示例游戏......)它确实工作得很好,但是当我使用 IDLE 运行时它给出了错误......所以我想知道是否是 IDLE 的错吗?
    • 从命令行运行您的应用程序并发现它看起来是这样的。
    • 我真的要把我的头撞到墙上,因为我一开始就没有使用终端......:D
    【解决方案4】:

    所以事实证明 IDLE 是导致问题的原因... 我尝试从命令行运行代码,它运行良好!

    我(曾经)使用的 IDLE 称为 Wing101。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多