python - Pygame从外部字体文件加载字体

标签 python fonts pygame woff

我正在尝试将 .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 文件目录中,如您在这张图片中所见:

Shows that the font files are in the same directory

而且我知道字体文件没有损坏,因为我已经看到了一个问题。

最佳答案

确保这不是损坏的字体或 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)

关于python - Pygame从外部字体文件加载字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38669178/

相关文章:

python - Celery WorkerLostError Worker 过早退出 : signal 6 (SIGABRT)

c++ - 为什么 Armadillo 的 SVD 结果与 NumPy 不同?

python - 修正经典风格的 Matplotlib 数学字体大小

javascript - 我可以在网站上的所见即所得中使用哪些字体

python - 如何知道图像数据是来自pygame的ABGR还是RGBA?

python - GL_LINES 没有显示在立方体顶部?

python - 如何在 __init__ 中设置只读 @property

fonts - 为什么我得到 JRRuntimeException : couldn't load the following font, Helvetica?

python - 列表中敌人之间的 Pygame/Python 测试?

python - Selenium 检查元素是否无一异常(exception)地存在