-
pygame.font
- pygame module for loading and rendering fonts
— initialize the font module — uninitialize the font module — true if the font module is initialized — get the filename of the default font — gets SDL_ttf version — get all available fonts — find a specific font on the system — create a Font object from the system fonts — create a new Font object from a file 字体模块允许将TrueType字体呈现为Surface对象。该模块构建在sdl_ttf库之上,该库随所有普通的pyGame安装一起提供。
使用字体完成的大部分工作都是通过使用实际的Font对象来完成的。该模块本身仅具有支持创建Font对象的例程
pygame.font.Font()
create a new Font object from a file 。从系统加载字体,方法是使用
pygame.font.SysFont()
create a Font object from the system fonts 功能。还有一些其他功能可以帮助查找系统字体。PYGAME自带一个内置的默认字体,Freesans黑体。这始终可以通过以下方式访问
None
作为字体名称。在PYGAME 2.0.3之前的版本中,PYGAMe.FONT接受任何的USC-2/UTF-16字符(‘\u0001’到‘\uffff’)。在2.0.3之后,使用SDL_TTF 2.0.15构建的pygame.font可以接受任何有效的UCS-4/UTF-32字符(就像表情符号一样,如果字体有它们的话)(‘\U00000001’到‘\U0010FFFF’))。有关这方面的更多信息,请参阅
Font.render()
。在pyGame 2.0.3之前,可以通过使用
pygame.freetype
Enhanced pygame module for loading and rendering computer fonts 基于pygame.ftfont
来模拟Font模块。这可以通过在第一次导入之前定义环境变量PYGAME_FREETYPE来使用pygame
the top level pygame package 。既然这个问题pygame.ftfont
解决方案不再存在,它可能会在未来被删除。- pygame.font.init()¶
- initialize the font moduleinit() -> None
此方法由自动调用
pygame.init()
。它初始化字体模块。在执行任何其他功能之前,必须先初始化该模块。多次调用此函数是安全的。
- pygame.font.quit()¶
- uninitialize the font modulequit() -> None
手动取消初始化SDL_TTF的字体系统。这将由自动调用
pygame.quit()
。即使字体当前未初始化,调用此函数也是安全的。
- pygame.font.get_init()¶
- true if the font module is initializedget_init() -> bool
测试字体模块是否初始化。
- pygame.font.get_default_font()¶
- get the filename of the default fontget_default_font() -> string
返回系统字体的文件名。这不是文件的完整路径。该文件通常与字体模块位于同一目录中,但也可以捆绑在单独的归档中。
- pygame.font.get_sdl_ttf_version()¶
- gets SDL_ttf versionget_sdl_ttf_version(linked=True) -> (major, minor, patch)
返回标识sdl_ttf版本的整数数组。Sdl_ttf是用C编写的底层字体呈现库,pyGame的字体模块依赖于它。如果‘Linked’为True(默认),则该函数返回链接的TTF库的版本。否则,此函数将返回编译时使用的TTF pyGame版本
New in pygame 2.1.3.
- pygame.font.get_fonts()¶
- get all available fontsget_fonts() -> list of strings
返回系统上所有可用字体的列表。字体名称将设置为小写,删除所有空格和标点符号。这在大多数系统上都有效,但如果找不到字体,有些系统会返回一个空列表。
- pygame.font.match_font()¶
- find a specific font on the systemmatch_font(name, bold=False, italic=False) -> path
返回系统上字体文件的完整路径。如果粗体或斜体设置为True,则会尝试查找正确的字体系列。
字体名称还可以是可迭代的字体名称、逗号分隔的字体名称字符串或逗号分隔的字体名称字节,在这种情况下,将按顺序搜索名称集。如果没有找到任何给定的名称,则不返回任何名称。
New in pygame 2.0.1: 接受可迭代的字体名称。
示例:
print pygame.font.match_font('bitstreamverasans') # output is: /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf # (but only if you have Vera on your system)
- pygame.font.SysFont()¶
- create a Font object from the system fontsSysFont(name, size, bold=False, italic=False) -> Font
返回从系统字体加载的新Font对象。字体将与请求的粗体和斜体标志匹配。PYGAME使用一小部分常见的字体别名。如果您要求的特定字体不可用,则可以使用合理的替代字体。如果没有找到合适的系统字体,这将退回到加载默认的pyGame字体。
字体名称还可以是可迭代的字体名称、逗号分隔的字体名称字符串或逗号分隔的字体名称字节,在这种情况下,将按顺序搜索名称集。
New in pygame 2.0.1: 接受可迭代的字体名称。
- pygame.font.Font¶
- create a new Font object from a fileFont(filename, size) -> FontFont(pathlib.Path, size) -> FontFont(object, size) -> Font
— Gets or sets whether the font should be rendered in (faked) bold. — Gets or sets whether the font should be rendered in (faked) italics. — Gets or sets whether the font should be rendered with an underline. — draw text on a new Surface — determine the amount of space needed to render text — control if text is rendered with an underline — check if text will be rendered with an underline — enable fake rendering of bold text — check if text will be rendered bold — enable fake rendering of italic text — gets the metrics for each character in the passed string — check if the text will be rendered italic — get the line space of the font text — get the height of the font — get the ascent of the font — get the descent of the font 从给定的文件名或Python文件对象加载新字体。大小是以像素为单位的字体高度。如果文件名为
None
将加载pyGame默认字体。如果无法从给定的参数加载字体,则会引发异常。一旦创建了字体,大小就不能更改。字体对象主要用于将文本呈现为新的Surface对象。呈现器可以模拟粗体或斜体特征,但最好从具有实际斜体或粗体字形的字体加载。
- bold¶
- Gets or sets whether the font should be rendered in (faked) bold.bold -> bool
字体是否应以粗体显示。
设置为True时,将启用文本的粗体呈现。这是一种虚假的字体延伸,在许多字体上看起来都不太好。如果可能,从一个真正的粗体字体文件中加载字体。虽然是粗体,但字体的宽度将不同于正常情况。这可以与斜体和下划线模式混合使用。
New in pygame 2.0.0.
- italic¶
- Gets or sets whether the font should be rendered in (faked) italics.italic -> bool
字体是否应以斜体呈现。
设置为True时,将启用斜体文本的假呈现。这是对字体的虚假倾斜,在许多字体类型上看起来都不太好。如果可能的话,从一个真正的斜体字体文件中加载字体。使用斜体时,字体的宽度将与正常情况下不同。这可以与粗体和下划线模式混合使用。
New in pygame 2.0.0.
- underline¶
- Gets or sets whether the font should be rendered with an underline.underline -> bool
字体是否应显示为下划线。
设置为True时,所有呈现的字体都将包括下划线。无论字体大小,下划线始终为一像素厚。这可以与粗体和斜体模式混合使用。
New in pygame 2.0.0.
- render()¶
- draw text on a new Surfacerender(text, antialias, color, background=None) -> Surface
这将创建一个在其上呈现指定文本的新曲面。
pygame.font
pygame module for loading and rendering fonts 不提供在现有曲面上直接绘制文本的方法:相反,您必须使用Font.render()
要创建文本的图像(曲面),然后将该图像blit到另一个曲面上。文本只能为一行:不呈现换行符。空字符(‘x00’)引发TypeError。同时接受Unicode和char(字节)字符串。对于Unicode字符串,以前仅支持UCS-2字符(‘\u0001’到‘\uffff’),任何更大的Unicode码点都将引发UnicodeError。现在,支持UCS-4范围内的字符。对于字符字符串a
LATIN1
假定为编码。抗锯齿参数是一个布尔值:如果为True,则字符将具有平滑边缘。颜色参数是文本的颜色 [例如:(0,0,255)表示蓝色] 。可选的背景参数是用于文本背景的颜色。如果没有传递背景,文本外部的区域将是透明的。返回的Surface将具有容纳文本所需的尺寸。(与由
Font.size()
)。如果为文本传递空字符串,将返回一个零像素宽度和字体高度的空白表面。根据使用的背景和抗锯齿的类型,这将返回不同类型的曲面。出于性能原因,最好知道将使用哪种类型的映像。如果未使用抗锯齿,则返回的图像将始终是具有双色调色板的8位图像。如果背景是透明的,则会设置一个Colorkey。抗锯齿图像渲染为24位
RGB
图像。如果背景是透明的,则会包含像素Alpha。优化:如果您知道文本(在屏幕上)的最终目标将始终具有纯色背景,并且文本是抗锯齿的,则可以通过指定背景色来提高性能。这将导致生成的图像通过Colorkey而不是Alpha值(效率低得多)来维护透明度信息。
如果呈现‘\n’,则将呈现未知字符。通常是一个长方形。相反,您需要自己处理换行符。
字体呈现不是线程安全的:任何时候都只有一个线程可以呈现文本。
Changed in pygame 2.0.3: 呈现UCS4 Unicode是有效的,不会引发异常。使用 if hasattr(pygame.font, "UCS4"): 看看PYGAME是否支持渲染UCS4 Unicode,包括更多语言和表情符号。
- size()¶
- determine the amount of space needed to render textsize(text) -> (width, height)
返回呈现文本所需的尺寸。这可用于在呈现文本之前帮助确定文本所需的位置。它还可以用于文字换行和其他布局效果。
请注意,大多数字体使用字距调整来调整特定字母对的宽度。例如,“ae”的宽度并不总是与“a”+“e”的宽度匹配。
- set_underline()¶
- control if text is rendered with an underlineset_underline(bool) -> None
启用后,所有呈现的字体都将包含下划线。无论字体大小,下划线始终为一像素厚。这可以与粗体和斜体模式混合使用。
备注
这与
underline
属性。
- get_underline()¶
- check if text will be rendered with an underlineget_underline() -> bool
启用字体下划线时返回True。
备注
这与
underline
属性。
- set_bold()¶
- enable fake rendering of bold textset_bold(bool) -> None
启用文本的粗体呈现。这是一种虚假的字体延伸,在许多字体上看起来都不太好。如果可能,从一个真正的粗体字体文件中加载字体。虽然是粗体,但字体的宽度将不同于正常情况。这可以与斜体和下划线模式混合使用。
备注
这与
bold
属性。
- get_bold()¶
- check if text will be rendered boldget_bold() -> bool
启用字体粗体呈现模式时返回True。
备注
这与
bold
属性。
- set_italic()¶
- enable fake rendering of italic textset_italic(bool) -> None
启用斜体文本的假呈现。这是对字体的虚假倾斜,在许多字体类型上看起来都不太好。如果可能的话,从一个真正的斜体字体文件中加载字体。使用斜体时,字体的宽度将与正常情况下不同。这可以与粗体和下划线模式混合使用。
备注
这与
italic
属性。
- metrics()¶
- gets the metrics for each character in the passed stringmetrics(text) -> list
该列表包含每个字符的元组,其中包含最小
X
偏移量,最大X
偏移量,最小Y
偏移量,最大Y
字符的偏移量和前进偏移量(方位角加宽度)。 [(Minx,Maxx,Miny,Maxy,Advance),(Minx,Maxx,Miny,Maxy,Advance),] 。列表中不会为每个无法识别的字符输入任何内容。
- get_italic()¶
- check if the text will be rendered italicget_italic() -> bool
启用字体斜体呈现模式时返回True。
备注
这与
italic
属性。
- get_linesize()¶
- get the line space of the font textget_linesize() -> int
返回具有字体的一行文本的高度(以像素为单位)。呈现多行文本时,这是建议的行间空格量。
- get_height()¶
- get the height of the fontget_height() -> int
返回以像素为单位的实际呈现文本的高度。这是字体中每个字形的平均大小。
- get_ascent()¶
- get the ascent of the fontget_ascent() -> int
返回字体上升的高度,以像素为单位。上升是指从字体基线到字体顶部的像素数。
- get_descent()¶
- get the descent of the fontget_descent() -> int
返回字体下降的高度,以像素为单位。下降是从字体基线到字体底部的像素数。
Edit on GitHub