2016-07-30 5 views
1

내 파이 게임에 .woff 형식의 글꼴 파일을로드하려고합니다. 나는이 문제에 관해 다른 포스트가 말하는 것을 보았지만 그들의 대답은 내 질문에 답하지 못한다. 이 그림에서 볼 수 있듯이 내 현재 파이썬 파일 디렉토리에이 글꼴 파일을 배치 한파이 게임 외장 글꼴 파일에서 글꼴로드

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' 

:

여기
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) 

내 오류입니다 :이 사용하여 시도

Shows that the font files are in the same directory

또한 문제가 될 수 있으므로 글꼴 파일이 손상되지 않았 음을 알고 있습니다.

답변

0

손상된 글꼴 또는 Windows 호환성 문제가 아닌지 확인하기위한 첫 번째 단계는 woff를 ttf로 변환하고 pygame이 해당 파일을로드하려고 시도하는 것입니다. 나는이 사이트에 갔다 : https://everythingfonts.com/woff-to-ttf 그리고 나는 내 자신의 woff 글꼴로 그것을 테스트했고 그것은 ttf와 똑같이 작동한다. 나는 리눅스에 있고 폰트/코드는 나를 위해 일했다.

대문자와 소문자를 구분하여 테스트 할 수 있도록 글꼴로드 코드를 붙여 넣습니다.

아직 작동하지 않는 경우 알려주십시오. 그렇다면 Windows + 파이썬 버전을 게시하여 재현 할 수 있도록하십시오.

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)