Pygame:从外部字体文件加载字体

3

我正在尝试将一个.woff格式的字体文件加载到我的pygame中。我看到其他帖子也在讨论这个问题,但他们的答案并没有帮助我回答我的问题。我尝试使用以下代码:

fontObj = py.font.Font('brandon_blk-webfont.woff', 16)
        textSurfaceObj = fontObj.render(self.fact, True, black, None)
        textRectObj = textSurfaceObj.get_rect()
        textRectObj.center  = (x * 1.5, y  * 1.5)
        gameDisplay.blit(textSurfaceObj, textRectObj)

这是我的错误信息:

Traceback (most recent call last):
  File "C:\Users\Sruthi\Desktop\Python\Pygame\Memorization Game\main.py", line 111, in <module>
    gameLoop()
  File "C:\Users\Sruthi\Desktop\Python\Pygame\Memorization Game\main.py", line 108, in gameLoop
    create_button(mouse, 50, 50)
  File "C:\Users\Sruthi\Desktop\Python\Pygame\Memorization Game\main.py", line 84, in create_button
    fontObj = py.font.Font('Memorization Game/brandon_blk-webfont.woff', 16)
OSError: unable to read font file 'Memorization Game/brandon_blk-webfont.woff'

我已经将这个字体文件放在我的当前python文件目录下,你可以在这张图片中看到:

这张图片显示字体文件与当前目录在同一文件夹中

同时,我知道字体文件没有损坏,因为我已经发现了一个问题。

1个回答

2
确保这不是字体损坏或Windows兼容性问题的第一步是将woff转换为ttf并尝试让pygame加载该文件。我去了这个网站:https://everythingfonts.com/woff-to-ttf,我用自己的woff字体进行了测试,它与ttf字体一样有效。我在Linux上工作,我的字体/代码适用于我。
我将为您粘贴我的字体加载代码,以便您可以进行测试。
如果仍然存在问题,请告诉我您的Windows + Python版本,以便我进行复制。
import pygame, sys, os
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((400, 300))

# font-related code:

fpsClock = pygame.time.Clock()
# https://www.behance.net/gallery/31268855/Determination-Better-Undertale-Font
font = pygame.font.Font(os.path.join("res", "fonts", 'DeterminationMonoWeb.ttf'), 16)

screen.blit(font.render(text, 0, (255, 240, 230)), (10, 10))
pygame.display.flip()
# Main game loop
while True:
    if pygame.event.wait().type in (QUIT, KEYDOWN, MOUSEBUTTONDOWN):
        break

    pygame.display.update()
    fpsClock.tick(60)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接