Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 文本获胜';t出现-pygame_Python_Pygame - Fatal编程技术网

Python 文本获胜';t出现-pygame

Python 文本获胜';t出现-pygame,python,pygame,Python,Pygame,所以我以前问过这个问题,但这次我没有犯同样的错误,在使屏幕变蓝之前调用文本循环 def win1(): print('Level 1 completed') global levelcount, var1, var2, clr, score, alive myfont = pygame.font.SysFont('Comic Sans MS', 100) textsurface = myfont.render('Level 1 completed', True,

所以我以前问过这个问题,但这次我没有犯同样的错误,在使屏幕变蓝之前调用文本循环

def win1():
    print('Level 1 completed')
    global levelcount, var1, var2, clr, score, alive
    myfont = pygame.font.SysFont('Comic Sans MS', 100)
    textsurface = myfont.render('Level 1 completed', True, (0, 0, 0))
    screen.blit(textsurface,(0,0))
    for sprite in enemies:
        sprite.kill()
    pygame.time.wait(2800)
    levelcount = 2
    var1 = 700
    var2 = 900
    clr = (10, 85, 135)
    myfont = pygame.font.SysFont('Comic Sans MS', 100)
    textsurface = myfont.render('Level 2', True, (0, 0, 0))
    screen.blit(textsurface,(0,0))
    alive = True
    score = 0
该代码应该让它显示“1级完成”,但它没有。这就是我所说的:

alive = True
while alive:
    for event in pygame.event.get():
        print(event)
        if event.type == pygame.QUIT:
            alive = False
        elif event.type == ADDENEMY:
            new_opponent = random.choice([Enemy(), Bomb(), Blimp()])
            enemies.add(new_opponent)
            all_sprites.add(new_opponent)

    pressed_keys = pygame.key.get_pressed()
    player.update(pressed_keys)

    enemies.update()

    screen.fill(clr)

    for entity in all_sprites:
        screen.blit(entity.surf, entity.rect)

    if pygame.sprite.spritecollideany(player, enemies):
        player.kill()
        alive = False
        death()

    if levelcount == 1: #I call it here
        if score > 100:
            alive = False
            win1()
    if levelcount == 2: #this is for if you beat level 2
        if score > 100:
            alive = False
            win2()

    screen.blit(player.surf, player.rect)

    pygame.display.flip()

    pygame.display.update()
    clock.tick(60)

我有一个死亡部分,上面写着“你死了”,它可以工作,但我在赢的部分使用了几乎相同的代码。

你必须在pygame.time.wait(2800)之前更新显示并处理事件。:

def win1():
# [...]
pygame.display.flip()
pygame.event.pump()
pygame.time.wait(2800)
# [...]
仅当使用或更新显示器时,对显示器表面所做的更改才可见。
在某些系统上,有必要通过或来处理事件,以便处理显示器的重画。处理事件可确保程序可以在内部与操作系统的其余部分交互