2017-09-21 6 views
1

J'ai récemment téléchargé une police pour un jeu en cours de création dans Pygame, mais quand l'invite où la police est utilisée est censée apparaître, une erreur est affichée à la place. L'erreur se lit comme suit:Pygame IOError, impossible de lire le fichier de police

Traceback (most recent call last): 
File "/home/pi/Desktop/Python Game.py", line 83, in <module> game_loop() 
File "/home/pi/Desktop/Python Game.py", line 78, in game_loop crash() 
File "/home/pi/Desktop/Python Game.py", line 29, in message_display largeText = pygame.font.Font 
("/home/pi/.fonts/ARCADECLASSIC.TTF",110) 
IOError: unable to read font file '/home/pi/.fonts/ARCADECLASSIC.TTF' 

Mon code lit:

def car (x, y) 
gameDisplay.blit (carImg, (x, y)) 

def text_objects (text, font): 
textSurface = font.render (text, True, black) 
return textSurface, textSurface.get_rect() 

def message_display (text): 
largeText = pygame.font.Font ("/Home/pi/.fonts/ARCADECLASSIC.TTF, 110) 
Textsurf, TextRect-text_objects (text, largeText) 
TextRect.center = ((display-width/2), (display-height/2)) 
gameDisplay.blit (TextSurf, TextRect) 

Je ne sais pas ce qui se passe, comme je l'ai téléchargé la même police d'un autre site, ce qui signifie qu'il hasnt été corrompu.

Im sur un Raspberry Pi 2 exécutant Raspbian Wheezy. est ici tout mon code (si cela est nécessaire):

import pygame 
import time 

pygame.init() 

display_width=800 
display_height=600 

gameDisplay=pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption("Road Obstacles!") 

black=(0,0,0) 
white=(255,255,255) 
red=(255,0,0) 

car_width=50 

clock=pygame.time.Clock() 
carImg = pygame.image.load("Racecar.png") 

def car(x,y): 
    gameDisplay.blit(carImg,(x,y)) 

def text_objects(text, font): 
    textSurface = font.render(text, True, black) 
    return textSurface, textSurface.get_rect() 

def message_display(text): 
    largeText = pygame.font.Font("ARCADECLASSIC.TTF",110) 
    TextSurf, TextRect = text_objects(text, largeText) 
    TextRect.center = ((display_width/2),(display_height/2)) 
    gameDisplay.blit(TextSurf, TextRect) 

    pygame.display.update 

    time.sleep(2) 

    game_loop 

def crash(): 
    message_display("Woops! You Crashed!") 



def game_loop(): 

    x = (display_width * 0.45) 
    y = (display_height * 0.8) 

    x_change = 0 

    gameExit = False 

    while not gameExit: 

     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       gameExit = True 

      if event.type == pygame.KEYDOWN: 
       if event.key == pygame.K_LEFT: 
        x_change += -5 
       elif event.key == pygame.K_RIGHT: 
        x_change += 5 
      if event.type == pygame.KEYUP: 
       if event.key == pygame.K_LEFT: 
        x_change += 5 
       if event.key == pygame.K_RIGHT: 
        x_change += -5 


     x += x_change 

     gameDisplay.fill(white) 
     car(x,y) 

     if x > display_width - car_width or x < 0: 
      crash() 

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

game_loop() 
pygame.quit() 
quit() 

J'ai utilisé un tutoriel par Sentdex sur Youtube pour me apprendre quelques petites choses sur pygame, mais je l'ai frappé ce bloc de route qui m'a fait arrêter le progrès , comme j'essaie de faire de ce jeu une extension de son tutoriel, plutôt qu'une simple copie.

Répondre

0

Fonctionne bien sur les fenêtres. J'ai téléchargé un fichier de police arcade aléatoire de http://www.dafont.com/arcade-pizzadude.font. Il est possible que votre fichier de polices soit corrompu. A noter également, les dossiers commençant par "." dans Linux sont cachés par défaut, mais pas dans Windows. Alors pouvez-vous mettre le fichier de polices dans un autre dossier et essayez d'exécuter ce code?

+0

Je vais devoir vérifier une fois que je rentre à la maison, im actuellement en vacances, mais merci pour le pourboire! –

+0

OUI! JE VOUS REMERCIE! –