Python 介绍屏幕未加载

Python 介绍屏幕未加载,python,pygame,Python,Pygame,我无法正确加载由def game_intro()定义的介绍屏幕。每当我运行它时,它就会被卡在一个空白的黑屏上。在我添加它之前,游戏运行得很好 我已经尝试过调试器,但未能成功找出错误。我正在使用Python IDE编写代码。问题代码如下: 导入pygame 导入时间 pygame.init() scrWdt=500 scrHgt=500 win=pygame.display.set_模式((scrWdt,scrHgt)) pygame.display.set_标题(“蛇”) clock=pygam

我无法正确加载由def game_intro()定义的介绍屏幕。每当我运行它时,它就会被卡在一个空白的黑屏上。在我添加它之前,游戏运行得很好

我已经尝试过调试器,但未能成功找出错误。我正在使用Python IDE编写代码。问题代码如下:

导入pygame
导入时间
pygame.init()
scrWdt=500
scrHgt=500
win=pygame.display.set_模式((scrWdt,scrHgt))
pygame.display.set_标题(“蛇”)
clock=pygame.time.clock()
黑色=(0,0,0)
def text_对象(文本、字体):
textSurface=font.render(文本,真,黑色)
返回textSurface,textSurface.get_rect()
def game_intro():
简介=正确
而简介:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
win.fill(白色)
largeText=pygame.font.font('freesansbold.ttf',115)
TextSurf,TextRect=text_对象(“Snake”,largeText)
TextRect.center=((scrWdt/2),(scrHgt/2))
win.blit(TextSurf,TextRect)
pygame.display.update()
时钟滴答(100)
游戏介绍()
我想看到一个写着“蛇”字的白色屏幕

intro = True
while intro:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
我很确定这个循环将永远运行,或者至少直到你退出。
pygame.event.get()
调用检索一个事件列表,但唯一的方法是获取一个
QUIT
列表

因此,它永远不会到达您的代码,实际上做介绍

您可能需要(Pythonic,但实际上是伪代码):


你的缩进很简单

def game_intro():
    intro = True
    while intro:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                intro = False
    # ---> 
        win.fill(pygame.Color('white'))
        largeText = pygame.font.Font('freesansbold.ttf',115)
        TextSurf, TextRect = text_objects("Snake", largeText)
        TextRect.center = ((scrWdt/2),(scrHgt/2))
        win.blit(TextSurf, TextRect)
        pygame.display.update()
        clock.tick(100)

game_intro() 
pygame.quit()
只需将游戏循环的其余部分正确缩进while循环即可。 另外,您没有在任何地方定义
white
,但是对于简单的颜色,您可以使用
pygame.Color


此外,我将循环的中断条件更改为实际使用您的
intro
变量,而不是
pygame.quit()
,因为后者将导致视频系统出现一些错误(在事件循环中取消初始化pygame后,
pygame.display.update()
仍会调用一次,从而导致错误).

您的缩进有误-您必须在介绍时在
内绘制缩进(如果您假设要设置动画)。或者在介绍时在
前面画它。你说得对!我从win.fill缩进到clock.tick(100),它出现了。非常感谢你!zeshaykes,这永远不会退出循环。我想在某个时候,你会想从介绍屏幕出来玩真正的游戏,是吗?paxdiablo,谢谢你的提醒。你说得对,我确实想退出介绍。上面没有,但我最近添加了一个按钮,单击它可以退出简介。谢谢!我从来没有想过做一个计数器的while循环。我决定接受furas的评论,只是因为它的代码更少,但我感谢你的回答!非常感谢。我很感激你对这种破坏性条件的评论,因为我一直收到你所说的视频系统错误,却不知道要改变什么。所以每当我使用
pygame.display.update()
,我就不应该使用
pygame.quit()
?附近有工作吗?
def game_intro():
    intro = True
    while intro:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                intro = False
    # ---> 
        win.fill(pygame.Color('white'))
        largeText = pygame.font.Font('freesansbold.ttf',115)
        TextSurf, TextRect = text_objects("Snake", largeText)
        TextRect.center = ((scrWdt/2),(scrHgt/2))
        win.blit(TextSurf, TextRect)
        pygame.display.update()
        clock.tick(100)

game_intro() 
pygame.quit()