如何在一定时间内显示文本?

How can I display a text a certain amount of duration?

感谢您对我最后一个问题的帮助,我设法解决了我的错误。

所以我继续我的小游戏,我希望玩家看到他们在击败敌人时(简要地)获得了多少分。

 if bullet_rect.colliderect(enemy1_rect):
#enemy respawn
     enemy1_rect.x = 1350
     enemy1_rect.y = random.randint(0, 500)
#points won display
     points += 100
     points_rect = points_text.render('+ 100$', None, 'Green')
     screen.blit(points_rect, bullet_rect)

这种作品,不过只显示1帧! 我试过 pygame.time.wait,delay,sleep,但我一无所获。 我想让它显示半秒,所以也许因为我 运行 游戏以 60 FPS 为上限,显示它 30 帧。 有什么建议么?谢谢!

您需要在应用程序循环中绘制文本。使用 pygame.time.get_ticks 以毫秒为单位测量时间。计算文本必须消失的时间并显示文本直到达到该时间:

text_end_time = 0
text_rect = None

run = True
while run:
    # [...]

    current_time = pygame.time.get_ticks() 

    if bullet_rect.colliderect(enemy1_rect):
        enemy1_rect.x = 1350
        enemy1_rect.y = random.randint(0, 500)
        points += 100
        points_surf = points_text.render('+ 100$', None, 'Green')
        text_end_time = current_time + 2000 # 2 seconds
        text_rect = bullet_rect.copy()

    if text_end_time > current_time
        screen.blit(points_surf, text_rect)

另见 and