【问题标题】:pygame window won't closepygame窗口不会关闭
【发布时间】:2020-08-04 17:31:25
【问题描述】:

我目前正在关注 Eric Matthes 的 Python Crash Course(第 1 版),并且正在尝试制作一个 pygame 程序。但是,我在关闭 pygame 窗口时遇到了麻烦,不幸的是,尝试this other post 中提到的所有解决方案都对我不起作用。 (我正在使用 Python 3.7.6、Spider 4.1.4 和 pygame 1.9.6。)

我当前的代码如下所示: (我一开始是跟着书的,后来一个人修改了很多次)

import sys

import pygame

def run_game():
    
    pygame.init()
    screen = pygame.display.set_mode((1200,800))

    pygame.display.set_caption("Alien Invasion")
    
    bg_color = (230, 230, 230)

    running = True
    
    while running:
        
        for event in pygame.event.get():
            
            if event.type == pygame.QUIT:
                
                running = False
                pygame.quit()
                sys.exit()
                
        screen.fill(bg_color)
        
        pygame.display.flip()
        
run_game() 

可能有什么我遗漏或做错了吗?

任何帮助将不胜感激!

更新:

当我使用 pygame 时,Python 总是进入“无响应”模式:

【问题讨论】:

  • 请进一步解释“无法关闭 pygame 窗口”是什么意思。您的确切代码对我来说可以正常工作,我的意思是:我单击窗口标题栏控件(x),然后窗口关闭,程序退出。
  • 每当我运行程序并弹出窗口,当我试图关闭它时,我得到一个永无止境的旋转风车,当我检查我的应用程序时,它说 Python“没有响应”。但是,当我运行其他程序(不使用 pygame)时,python 工作正常。
  • 可能是我的应用程序或计算机有问题..?

标签: python pygame window


【解决方案1】:

这可能对你有帮助:

import pygame
import time
(width, height) = (300, 200)
screen = pygame.display.set_mode((width, height))
pygame.display.flip()
pygame.display.set_caption("Hello World")
running = True
try:
   while running:
       for event in pygame.event.get():
           if event.type == pygame.QUIT:
               running = False
   pygame.quit()
except SystemExit:
   pygame.quit()

我从这里得到了这个解决方案:Closing Pygame Window

【讨论】:

  • 感谢您的意见,但和以前一样,我被锁定在不会消失的旋转风车中。在这一点上,我想知道是否是我的计算机导致了错误(我一直收到消息说我的存储空间不足,如果这有帮助的话)...?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多