【问题标题】:Pygame display not respondingPygame 显示没有响应
【发布时间】:2017-05-10 22:53:32
【问题描述】:

我正在慢慢尝试了解 pygame 并用它编写我的第一个游戏,老实说,我没想到这么早就会出现问题。到目前为止,我只设置了一个显示,它应该无限期地存在(我只是想尝试一下):

import pygame

pygame.init()

(width, height) = (1000, 700)
screen = pygame.display.set_mode((width, height))
while True:
    pygame.display.flip()

但是当窗口出现时,它说它“没有响应”。我尝试删除循环,以便显示只会闪烁一次并消失,因为程序在创建后会立即死亡,但我得到相同的“无响应”窗口。我正在使用 pygame 1.9.2 和 python 3.5。我想知道问题是否可能是因为 anaconda - 默认情况下,该窗口是作为 anaconda 的子车打开的。

编辑:到目前为止,我发现当我不是从 spyder 打开它时,只需单击一个文件就可以了。有没有什么方法可以通过在 spyder 中简单运行和编译来使其工作,或者这就是它应该如何工作?

【问题讨论】:

    标签: python pygame anaconda


    【解决方案1】:

    将此添加到您的循环中。对我来说,唯一没有响应的情况是当我单击 X 时,这可能与 pygame 不知道发生这种情况时该怎么做有关。

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

    【讨论】:

    • 程序需要定时处理事件或者操作系统认为pygame崩溃了。这就是添加pygame.event.get() 时它起作用的原因。 stackoverflow.com/documentation/pygame/5110/…
    • 啊,好的。我的解决方案应该可行,但这是正确的解释
    • 您的缩进有点偏离,否则它应该回答这个问题。如果您可以添加一两行来解释此解决方案为何有效,那就太好了!在我的链接中,您在第一个示例的第三个要点和第二个示例的 注意 部分中有一个简短的解释。
    • 嗨@Malcadicta,如果我上面的回答或任何答案已经解决了您的问题,请考虑通过单击复选标记接受它。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    【解决方案2】:
    #Try This 
    
    
    import pygame
    
    (width, height) = (1000, 700)
    screen=pygame.display.set_mode((width, height))
    pygame.display.update()
    while True:
        for event in pygame.event.get():``
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-11
      • 2020-03-06
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多