0

我尝试了py2execx_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 文件放在文件夹中,我也会遇到运行时错误。

我没有想法,谢谢你的帮助......

4

2 回答 2

0

我解决这个问题的方法是将 freesansbold.ttf 复制到我的项目目录,并使用pygame.font.Font("freesansbold.ttf", 16)

于 2014-07-31T09:44:33.597 回答
0

我在使用默认系统字体时遇到了同样的问题。真的很傻。我最终使用了pygame.font.SysFont("Arial", 16)which 工作,而无需包含任何内容。

于 2013-08-07T20:49:18.583 回答