python - 当我运行Python程序时,pygame窗口打开片刻,然后退出

标签 python python-2.7 crash pygame exit

我是一个刚开始尝试通过在线 class 使用python和pygame制作游戏的程序员。但是,当我运行以下代码时,pygame窗口将打开一秒钟,然后关闭。

import pygame

pygame.init()
screen = pygame.display.set_mode((900,700))

finished = False

while finished == False:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            finished = True

    rectOne = pygame.Rect(0,0,30,30)

    color = (0,0,255) #R,G,B
    pygame.draw.rect(screen,color,rectOne)
    pygame.display.flip()

我也没有收到任何错误消息。就像它运行我的循环一次,然后将finished更改为True一样。我已经检查了很多次,并且我的代码与在线 class 的代码完全匹配。我正在使用Mac和Python 2.7.13。有人可以帮忙吗?
更新:我不确定这是否有帮助,但是我仍然可以运行下面的代码,并且可以正常运行。
导入pygame
pygame.init()
screen = pygame.display.set_mode((900,700))

finished = False

while finished == False:
    for event in pygame.event.get():
         if event.type == pygame.QUIT:
             finished = True

最佳答案

好的,我对您的问题进行了一些搜索,得出的结论是您需要尝试以下操作:

A)使用pygame.display.update()代替pygame.display.flip()
B)尝试将它们放在程序的主循环之外:pygame.QUIT和下一行quit()
C)如果我的上述推测均无效,那么您需要检查QUIT事件是否被自动触发,可通过更改while循环如下来实现:

while not finished: 
    for event in pygame.event.get():
       print(event)

之后,当您运行程序时,将在Shell中显示pygame屏幕上发生的事件,如果有问题,则第一个和最后一个事件将是QUIT,然后可能是Mac或版本问题,因为我最近在reddit上阅读过有关它的内容,所以请查看here

关于python - 当我运行Python程序时,pygame窗口打开片刻,然后退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45698376/

相关文章:

qt - Qt程序在右键单击时崩溃

python - 尝试在 Python 中拆分 ":"和 ",",但因 ValueError 而失败

Python - 对每一行使用 rsplit 将字符串转换为表格

python - Unicode解码错误: 'ascii' codec can't decode byte 0x92 in position 47: ordinal not in range(128)

winforms - 如何在 python 脚本中将 SendKeys 发送到 Windows 窗体?

python - 在 iPython Notebook(Twitter API)中使用 Tweepy - 错误 "data must be a byte string"

iphone - 如何从客户那里获取 iPhone 崩溃日志?

macos - 连接SFTP时Dreamweaver(Mac)崩溃

Python Flask 应用程序抛出 RuntimeError : working outside of request context

python - 如何不重复发送数据?