2016-07-30 10 views
1

Я пытаюсь загрузить файл форматированного шрифта .woff в мой pygame. Я видел, как другие сообщения говорили об этой проблеме, но их ответы не помогают ответить на мой вопрос. Я попытался с помощью этого: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' 

Я поместил этот файл шрифта в моем текущем каталоге питон файл, как вы можете увидеть в этой картине:

Shows that the font files are in the same directory

Также я знаю, что файл шрифта не поврежден, поскольку я видел, что проблема может быть.

ответ

0

Первым шагом к обеспечению этого не является проблема с поврежденным шрифтом или совместимостью с Windows, было бы преобразование woff в ttf и попытка получить загрузчик для загрузки этого файла. Я пошел на этот сайт: 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)