所以我在pygame中遇到问题,我指定要使用的字体和大小,但是当我的程序运行时,字体和大小是默认值。
这是我定义文本的地方
def font(self):
'''*****FATAL - THIS LINE CAUSES ERROR (When compiled to .exe using cx_freeze)*****'''
#font = pygame.font.SysFont("Coure", 20)
font_color = (0, 0, 0)
font = pygame.font.Font("coure.fon", 20)
self.text = font.render("Level "+str(self.level) + " " + self.name + " Health " + str(self.health), True, font_color)
这句话在"致命"从编辑器运行时,注释工作正常,但一旦以.exe
运行,就会导致此错误Fatal Python error: (pygame parachute) Segmentation Fault
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\pygame\pkgdata.py", line 67, in getResource
return open(os.path.normpath(path), 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Jared\\Desktop\\Python\\Boss Battle\\build\\exe.win32-3.4\\library.zip\\pygame\\freesansbold.ttf'
我没有在我的计算机上安装freesansbold字体,但这不重要,因为它应该在游戏文件夹中查找coure字体。奇怪的是,我说" Coure"并且该文件名为" coure.fon",但是当我写这个时,它是无法识别的。
我想我正在寻找一些关于如何修复错误或如何定义我想要它使用的文本文件的指导。谢谢你的帮助!
答案 0 :(得分:1)
打开你的pygame包文件夹。它应该是C:\Python34\Lib\site-packages\pygame
之类的东西。应该有一个标题为freesansbold.ttf
的True Type字体文件。复制该文件,然后打开包含您的exe程序的文件夹。应该有一个名为library的压缩文件。打开它,然后转到压缩文件里面的pygame文件夹。应该看起来像\build\exe.win32-3.4\library.zip\pygame
。只需将freesansbold.ttf
文件粘贴到该文件夹中即可完美运行。 freesansbold字体附带pygame包,但由于某些原因,py2exe
和cx_Freeze
不包含它,因此您必须手动添加它。