Pygame IOError,无法读取字体文件

时间:2017-09-21 05:18:53

标签: python fonts raspberry-pi pygame ioerror

我最近为Pygame中的游戏下载了一个字体,但是当弹出一个字体的提示时,会显示错误。 错误如下:

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'

我的代码是:

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)

我不确定最新情况,因为我从其他网站下载了相同的字体,这意味着它没有被破坏。

我在运行Raspbian Wheezy的Raspberry Pi 2上。 这是我的所有代码(如果必要的话):

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()

我在Youtube上使用了Sentdex的教程来教我一些关于pygame的内容,但是我已经触及了这个阻碍进度的路障,因为我试图让这个游戏成为他的教程的延伸,而不仅仅是一份副本。

1 个答案:

答案 0 :(得分:0)

在Windows上正常工作。我从http://www.dafont.com/arcade-pizzadude.font下载了一些随机的街机字体文件。您的字体文件可能已损坏。另外需要注意的是,文件夹以“。”开头。在linux中默认隐藏,但不在Windows中。那么你可以将字体文件放在其他文件夹中并尝试运行此代码吗?