4

我和一个朋友团队创建了这个游戏,我现在正尝试在 linux 中运行,

我们在 Windows 中使用 Aptana Studio 使用 python 2.7 和 Pygame 开发了它,并且代码在运行时完全可以工作。

将它下载到linux时它不会加载说它找不到文件。然后我尝试在 Windows 中通过 CMD 运行它,并且出现同样的错误。

到目前为止的错误是

Traceback (most recent call last):
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 144, in <module>
    showMenu()
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 107, in showMenu
    menu.init(['Start','About','Quit'], surface)
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 52, in init
    self.create_strukture()        
  File "/home/user/Desktop/Raspberroids/mainmenu.py", line 73, in create_strukture
    self.font = pygame.font.Font(self.font_path, self.fontsize)
IOError: unable to read font filename

来源在: https ://github.com/ryanteck/RasPiThon/tree/master/Raspberroids/Source%20Code

发生在 2.7 和 2.6 上

任何人都可以帮忙吗?

4

2 回答 2

5

您的字体路径data/coders_crux/coders_crux.ttf是相对的。

当您从源目录以外的其他目录启动游戏时,pygame 找不到字体。


一个简单的解决方法是将以下几行添加到脚本的顶部(mainmenu.py):

import os
os.chdir(os.path.dirname(os.path.realpath(__file__)))

os.path.realpath(\__file__)将获得您的脚本的路径,os.chdir并且os.path.dirname您将当前工作目录更改为您的脚本目录。

这样,您使用的相对路径将起作用。

于 2012-07-27T12:57:29.820 回答
1

PyDevPYTHONPATH为您的程序设置工作目录和变量。它还可以将控制台编码设置为不同于操作系统默认值的内容。

在创建 Font 对象之前添加一条print self.font_path语句,并查看路径是否正常。如果它是相对路径,您还可以使用os.path.abspath(有关详细信息,请参阅os.path文档)来更好地了解正在发生的事情。

于 2012-07-27T12:50:37.193 回答