2016-07-30 41 views
1

Ich versuche, eine .woff-formatierte Schriftart-Datei in mein Pygame zu laden. Ich habe andere Beiträge gesehen, die über dieses Thema sprechen, aber ihre Antworten helfen mir nicht, meine Frage zu beantworten. Ich habe versucht, dies mit:Pygame Laden von Schriftarten aus externer Schriftart-Datei

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) 

Hier ist mein Fehler:

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' 

ich diese Font-Datei in meinem aktuellen Python-Datei-Verzeichnis abgelegt haben, wie Sie in diesem Bild sehen können:

Shows that the font files are in the same directory

Auch ich weiß, dass die Schriftart-Datei nicht beschädigt ist, wie ich ein Problem gesehen haben kann.

Antwort

0

Der erste Schritt, um sicherzustellen, ist dies nicht eine beschädigte Schriftart oder Windows-Kompatibilitätsproblem wäre, woff in ttf zu konvertieren und versuchen Get pygame, um diese Datei zu laden. Ich ging zu dieser Seite: https://everythingfonts.com/woff-to-ttf und ich testete es mit meiner eigenen Woff-Schriftart und es funktioniert genauso mit TTF. Ich bin auf Linux und meine Schriftart/Code arbeitete für mich.

Ich werde meinen Font-Lade-Code für Sie einfügen, damit Sie damit nur für den Fall testen können.

Bitte lassen Sie mich wissen, wenn die Dinge immer noch nicht funktionieren. Wenn ja, poste deine Windows + Python-Versionen, damit ich sie reproduzieren kann.

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)