我想知道如何使用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)
我不知道为什么它不打印,如果有人有任何建议我很感激帮助!
答案 0 :(得分:0)
尝试添加:
labelRect = label.get_rect()
labelRect.center = (400, 300)
在label = font.render...
然后,将screen.blit
行替换为:
screen.blit(label, labelRect)
我希望这有用。
答案 1 :(得分:0)
由于我无法对您的问题发表评论,我必须将其作为答案。您能否提供整个代码,特别是显示器更新的部分?我几乎100%肯定你把文字搞定了,然后填满了屏幕,然后把游戏的剩余部分搞定了,所以文字实际上是blitted,但后来被填充和其他blitss覆盖。
但是像这样我无法帮助你。你这样做的方式应该有效。