如何创建字体列表

问题描述 投票:0回答:1

在我的程序中,我创建了一些不同大小的不同文本,而不是每次我想使用不同大小时创建新字体,我认为我可以创建一个字体列表,其中每个索引都是该字体大小。例如,font[50] 就是文本大小 50。

但是,当我尝试使用这种方式渲染文本时,我收到错误,该对象没有 .render 函数。

font = [[pygame.font.SysFont('Times New Roman', i)] for i in range(200)]

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
        elif pygame.key.get_pressed()[K_ESCAPE]:
            pygame.quit()
    pygame.draw.rect(screen, '#FFFFFF', pygame.rect.Rect(0, 0, screen_width, screen_height))
    screen.blit(font[50].render("Hi", False, '#FFFFFF'), (screen_width / 2, screen_height / 2))
    pygame.display.flip()

我添加了打印语句来检查字体的内容,它确实看起来像预期的 200 种字体的列表,但是 .render 命令拒绝工作。

python pygame
1个回答
0
投票

只需使用

freetype
模块而不是
font
模块。

它的

render
方法采用尺寸参数,因此您可以使用单个字体实例(并且不必为每种尺寸创建一个新的字体实例)。

© www.soinside.com 2019 - 2024. All rights reserved.