我想在按钮上添加文本,然后我在线上跟随了一个教程并按照指示编写了代码,但是,文本仍然无法成功显示在按钮上,这是我的代码:
ButtonText = pygame.font.SysFont("freesansbold.ttf", 10)
textSurf, textRect = text_objects("Mute", ButtonText)
textRect.center = ((20+(50/2)), (20+(20/2)))
background.blit(textSurf, textRect)
我在顶部定义了text_objects:
def text_objects(text, font):
black = (0,0,0)
textSurface = font.render(text, True, black)
return textSurface, textSurface.get_rect()
答案 0 :(得分:0)
我相信您没有指定要绘制字体的背景,因此它正在为您创建空白。那就是黑色的。您可能需要将代码修改为此:
def text_objects(text, font):
black = (0,0,0)
white = (255,255,255)
surf = pygame.Surface(font.size(text))
surf.fill(white)
textSurface = font.render(text, True, black, surf)
return textSurface, textSurface.get_rect()
答案 1 :(得分:0)
我解决了这个问题。我应该将代码background.blit(textSurf, textRect)
更改为screen.blit(textSurf, textRect)
。进行此更改后,文本可以显示在按钮上,但是文本闪烁,为了解决此问题,我在此处添加了Clock函数以控制更新的频率。最后的代码在这里:
ButtonText = pygame.font.Font("freesansbold.ttf", 10)
textSurf, textRect = text_objects("Mute", ButtonText)
textRect.center = ((20+(50/2)), (20+(20/2)) )
screen.blit(textSurf, textRect)
pygame.display.flip()
clock = pygame.time.Clock()
clock.tick(15)