我尝试了py2exe,cx_freeze,即使使用这个网站的人也无济于事,在pygame2exe方面取得了一些进展。我阅读了有关此问题的其他两三篇文章,但是尽管我的设置文件与指示的相同,并且还放入了 freesansbold.ttf,但我仍然收到“已请求运行时以不寻常的方式终止”错误。
我将详细介绍一些细节,但奇怪的是,如果我将文本设置为标准内容,例如此处建议的“Arial”(Pygame Distribution - Runtime Error),并且它创建的应用程序确实可以工作,但问题是我的游戏是一个rpg,如果文本不是freesanbold,它会到处溢出并且不可读,所以基本上我必须有那个文本。
这是我最初获得字体代码的方式:
font=pygame.font.SysFont(None, 48)
然后我将其更改为:
font=pygame.font.SysFont("freesansbold.ttf", 48)
并将 .ttf 包含在文件夹中,但无济于事。再次,如果我将其更改为“Arial”,那么pygame2exe会创建一个工作文件,但由于文本问题,我需要 freesanbold。
这是pygame2exe代码,我从 wiki 中完全复制了该代码:
def isSystemDLL(pathname):
# checks if the freetype and ogg dll files are being included
if os.path.basename(pathname).lower() in ("libfreetype-6.dll", "libogg-0.dll","sdl_ttf.dll"): # "sdl_ttf.dll" added by arit.
return 0
return origIsSystemDLL(pathname) # return the orginal function
py2exe.build_exe.isSystemDLL = isSystemDLL # override the default function with this one
我试过把.dlls放在文件夹里,什么都没有。这可能是一个超级简单的解决方法,但我已经做了好几天了,我无法弄清楚。
同样,我在这里完全遵循了 wiki(http://pygame.org/wiki/Pygame2exe),但问题是即使将 .ttf 文件放在文件夹中,我也会遇到运行时错误。
我没有想法,谢谢你的帮助......