打印文本 - Pygame

0 投票
2 回答
964 浏览
提问于 2025-04-18 03:37

我在想,怎么用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)

希望这对你有帮助。

撰写回答