如何删除/替换pygame中的文本

Kra*_*net 6 text pygame blit

我是pygame的新手,我打了我的第一个树桩,我找不到答案..

blitting文本后,然后更改同一个变量的字符串,游戏而不是用新的替换原始文本,重叠两个文本..?

Dev*_*ant 7

您必须先删除旧文本.由Font.render普通表面创建的表面.一旦a Surface为blit,其内容就会成为目标表面的一部分,您必须操纵目标表面以清除源表面上的blit.

擦除目标表面的一种方法是将背景表面blit到其上.背景曲面是目标曲面看起来的样子,没有任何文本或精灵.另一种方法是用纯色填充表面:

# pygame initialization goes here

screen = pygame.display.get_surface()
font = pygame.font.Font(None, 40)

font_surface = font.render("original", True, pygame.Color("white"));
screen.blit(surface, (0, 0))

screen.fill(pygame.Color("black")) # erases the entire screen surface
font_surface = font.render("edited", True, pygame.Color("white"));
screen.blit(surface, (0, 0))
Run Code Online (Sandbox Code Playgroud)

  • 要仅删除文本区域:`screen.fill(pygame.Color("black"),(0,0,110,40))` (5认同)