【问题标题】:Using pygame2exe and having font issue with sysfont/.ttf使用 pygame2exe 并遇到 sysfont/.ttf 的字体问题
【发布时间】:2013-08-07 20:41:39
【问题描述】:

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

我没有想法,感谢您的帮助...

【问题讨论】:

    标签: python pygame py2exe


    【解决方案1】:

    我在使用默认系统字体时遇到了同样的问题。真的很傻。我最终使用了pygame.font.SysFont("Arial", 16),它不需要我添加任何东西就可以工作。

    【讨论】:

    • 这会起作用,但问题是我的所有文本都是使用该特定字体放置的,如果我可以使用几乎完全相同大小的字体。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-03-13
      • 2011-04-14
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      相关资源
      最近更新 更多