打印文本 - Pygame

时间:2014-04-21 17:43:32

标签: python text io pygame

我想知道如何使用pygame打印文本,目前我有这个代码(我认为它可以工作但不会):

for player in player_list:

    block_hit_list = pygame.sprite.spritecollide(player, block_list, True)

    for block in block_hit_list:
        health -= 25
        collision.play()

        if health == 0:
            font = pygame.font.Font("freesansbold.ttf", 30)
            label = font.render("GAME OVER", 1, (255,100,0))
            screen.blit(label, (400, 300))
            break


    if health == 0:
        gameover.play()
        collision.stop()
        player_list.remove(player)
        all_sprites_list.remove(player)
        block_list.remove(block)
        all_sprites_list.remove(block)

我不知道为什么它不打印,如果有人有任何建议我很感激帮助!

2 个答案:

答案 0 :(得分:0)

尝试添加:

labelRect = label.get_rect()
labelRect.center = (400, 300)

label = font.render...

的行下面

然后,将screen.blit行替换为:

screen.blit(label, labelRect)

我希望这有用。

答案 1 :(得分:0)

由于我无法对您的问题发表评论,我必须将其作为答案。您能否提供整个代码,特别是显示器更新的部分?我几乎100%肯定你把文字搞定了,然后填满了屏幕,然后把游戏的剩余部分搞定了,所以文字实际上是blitted,但后来被填充和其他blitss覆盖。

但是像这样我无法帮助你。你这样做的方式应该有效。