Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pygame.font.font可以使用什么字体?_Pygame - Fatal编程技术网

pygame.font.font可以使用什么字体?

pygame.font.font可以使用什么字体?,pygame,Pygame,我以为pygame.font.font要加载.ttf字体,如果没有.ttf文件在同一目录下,你就不能加载字体,但我看过一个视频,其中有人加载字体时没有.ttf字体在同一目录下。我想知道在pygame.font.font中可以使用哪些字体,而不必在同一目录中使用.ttf文件在pygame中使用字体通常有两种方法:pygame.font.font()和pygame.font.SysFont()pygame.font.font()需要字体文件的路径作为其第一个参数,而pygame.font.SysFo

我以为pygame.font.font要加载.ttf字体,如果没有.ttf文件在同一目录下,你就不能加载字体,但我看过一个视频,其中有人加载字体时没有.ttf字体在同一目录下。我想知道在pygame.font.font中可以使用哪些字体,而不必在同一目录中使用.ttf文件

在pygame中使用字体通常有两种方法:
pygame.font.font()
pygame.font.SysFont()
pygame.font.font()
需要字体文件的路径作为其第一个参数,而
pygame.font.SysFont()
需要带有字体名称的字符串

您可以使用
pygame.font.font()
加载任何TrueType字体文件(*.ttf)。要在项目目录中加载字体文件
myfont.ttf
,只需调用
pygame.font.font(“myfont.ttf”,size)
。如果第一个参数位于其他位置,请将其替换为文件路径。您可以使用相对或绝对文件路径

或者,您可以通过调用
pygame.font.SysFont(“fontname”,size)
来使用系统字体。可以调用哪些系统字体取决于运行此操作的系统。如果它找不到您尝试提供的字体,它将退回到默认的系统字体。您可以传递一个逗号分隔的字体名称列表,然后按顺序搜索,并返回第一个可用的字体
pygame.font.get_fonts()
将返回一个列表,其中列出了它在您的系统上可以找到的所有字体名称,然后您可以使用它

最后,要加载不是TrueType字体的字体文件,可以使用
pygame.freetype
模块,该模块支持TTF、Type1、CFF、OpenType、SFNT、PCF、FNT、BDF、PFR和Type42字体。您可以通过调用
pygame.freetype.font()
来使用字体文件,也可以通过调用类似于字体模块的
pygame.freetype.SysFont()
来使用系统字体


因此,如果您想使用“Arial”字体并将其安装在您的系统上,可以使用
pygame.font.SysFont('Arial',size)
调用它。如果您的系统上没有安装该字体或不确定,您可以直接提供字体文件的路径,例如
pygame.font.font(“C:\Windows\Fonts\Arial.ttf”,size)

可用的字体将取决于系统。但是,您可以通过调用来获取所有可用字体的列表:
pygame.font.get_font()

您应该首先
导入pygame
,然后在IDE中键入
打印(pygame.font.get_font())
,以便查看所有当前可用的字体:

从操作系统特定角度来看的一些发现:

  • 在Windows pygame.font.get_fonts()上返回大量系统字体,但在作为WSL安装的Ubuntu上,我们只得到3种字体:
    ['dejavuserif'、'dejavusansmono'、'dejavusans']
  • 似乎没有独立于操作系统的字体名称,包括
    air
  • 如果您想要独立于操作系统的字体,请使用
    pygame.font.font(pygame.font.get\u default\u font(),font\u size)

它适用于freesansbold.ttf,但不适用于arial。我知道我可以使用pygame.font.SysFont,但我想知道我可以使用pygame.font.font的哪些字体我已经扩展了我以前的答案,但我仍然不确定我是否正确理解您的问题。您是否对pygame.font.font()可以使用的文件类型或文件路径感到困惑?我已经了解到freesansbold.ttf是pygame附带的一种字体,因此您不需要使用.ttf文件来加载pygame.font.font;我想知道pygame附带的字体是否更多?
freesansbold.ttf
是pygame附带的唯一字体。系统字体可以使用
pygame.font.SysFont
,默认字体可以使用
SysFont
中的
None