Python 为什么我的pygame窗口没有显示任何内容?

Python 为什么我的pygame窗口没有显示任何内容?,python,pygame,Python,Pygame,(python 3.8和pygame 1.9.6) 是否需要导入操作系统?问题在于: 您需要更新主循环中的显示,而不是主循环之后的显示(pygame.display.flip()) 您需要在应用程序循环中而不是在事件循环中绘制矩形: 导入pygame pygame.init() screen=pygame.display.set_模式((400300)) 完成=错误 #主回路 虽然没有这样做: 对于pygame.event.get()中的事件: 如果event.type==pygame.QUIT

(python 3.8和pygame 1.9.6)

是否需要导入操作系统?

问题在于:

  • 您需要更新主循环中的显示,而不是主循环之后的显示(
    pygame.display.flip()
  • 您需要在应用程序循环中而不是在事件循环中绘制矩形:
  • 导入pygame
    pygame.init()
    screen=pygame.display.set_模式((400300))
    完成=错误
    #主回路
    虽然没有这样做:
    对于pygame.event.get()中的事件:
    如果event.type==pygame.QUIT:
    完成=正确
    #压痕
    #|
    pygame.display.flip()
    
    这是一个问题:

  • 您需要更新主循环中的显示,而不是主循环之后的显示(
    pygame.display.flip()
  • 您需要在应用程序循环中而不是在事件循环中绘制矩形:
  • 导入pygame
    pygame.init()
    screen=pygame.display.set_模式((400300))
    完成=错误
    #主回路
    虽然没有这样做:
    对于pygame.event.get()中的事件:
    如果event.type==pygame.QUIT:
    完成=正确
    #压痕
    #|
    pygame.display.flip()
    

    仍然没有working@GautamMehta这段代码运行得很好,我现在已经测试过了。很晚了,但除了版本之外……这就是问题所在。。thanks@coderGtm非常感谢。不客气,还是不行working@GautamMehta这段代码运行得很好,我现在已经测试过了。很晚了,但除了版本之外……这就是问题所在。。thanks@coderGtm非常感谢。不客气。可能pygame安装不正确。pygame在Python3.8上不起作用。您必须降级到Python3.7。但是外星人示例可以工作,那么答案中的代码没有理由不起作用您有错误的缩进-
    rect()
    flip()
    应该在
    中,而
    应该在
    中。试一下,不要闲着。如果未运行未经更改的旧代码,也请检查。但我也会运行Python3.7,因为3.8是一个非常新的版本,它可能有未知的bug。除了@furas指出的缩进错误,Python3.8不支持pygame。请参阅pygame可能未正确安装。pygame在Python3.8上不起作用。您必须降级到Python3.7。但是外星人示例可以工作,那么答案中的代码没有理由不起作用您有错误的缩进-
    rect()
    flip()
    应该在
    中,而
    应该在
    中。试一下,不要闲着。如果未运行未经更改的旧代码,也请检查。但我也会运行Python3.7,因为3.8是一个非常新的版本,它可能有未知的bug。除了@furas指出的缩进错误,Python3.8不支持pygame。看见
    
    import pygame
    
    
    pygame.init()
    screen = pygame.display.set_mode((400, 300))
    done = False
    
    #main loop
    while not done:
            for event in pygame.event.get():
                    if event.type == pygame.QUIT:
                        done = True
                    pygame.draw.rect(screen, (0, 128, 255), pygame.Rect(30, 30, 60, 60))
    
    pygame.display.flip()