模块五:font、freetype模块

font模块主要用于获取字体Font对象,而freetyep模块是font模块的增强版本,保留了font模块的所有功能,并在font模块的基础之上增加了许多的功能。在pygame中,绘制文字的方法只有一种,就是先获取字体对象,然后字体对象调用render()方法生成一个新的图像(Surface),再将这个图像(Surface)绑定到窗口(Surface)中。

# 获取系统字体的对象的方法
font_name = pygame.font.get_default_font()
font1 = pygame.font.SysFont(font_name, 50)
font_list = pygame.font.get_fonts()
font_path = pygame.font.match_font(font_list[1])
font2 = pygame.font.Font(font_path, 50)
# 获取图片Surface
text_surface1 = font1.render("123", True, (255, 0, 0), (255, 255, 255))
text_surface2 = font1.render("456", True, (255, 0, 0), (255, 255, 255))
# 将图片Surface绑定到窗口Surface
surface.blit(text_surface1, (200, 100))
surface.blit(text_surface2, (400, 100))

下面介绍一下font模块中的函数,如下表:

函数描述
pygame.font.init()初始化font模块
pygame.font.quit()取消初始化font模块
pygame.font.get_init()判断font模块是否初始化
pygame.font.get_default_font()获得系统字体的文件名
pygame.font.get_fonts()获得所有系统字体文件名的列表
pygame.font.match_font()根据文件名查找字体的路径
pygame.font.SysFont()根据字体的名称获得对应的Font对象
pygame.font.Font()根据字体的路径或者字体的文件名获得对应的Font对象

对于一个Font对象,有下列方法:

函数描述
pygame.font.Font.boldGets or sets whether the font should be rendered in (faked) bold.
pygame.font.Font.italicGets or sets whether the font should be rendered in (faked) italics.
pygame.font.Font.underlineGets or sets whether the font should be rendered with an underline.
pygame.font.Font.renderdraw text on a new Surface
pygame.font.Font.sizedetermine the amount of space needed to render text
pygame.font.Font.set_underlinecontrol if text is rendered with an underline
pygame.font.Font.get_underlinecheck if text will be rendered with an underline
pygame.font.Font.set_boldenable fake rendering of bold text
pygame.font.Font.get_boldcheck if text will be rendered bold
pygame.font.Font.set_italicenable fake rendering of italic text
pygame.font.Font.metricsgets the metrics for each character in the passed string
pygame.font.Font.get_italiccheck if the text will be rendered italic
pygame.font.Font.get_linesizeget the line space of the font text
pygame.font.Font.get_heightget the height of the font
pygame.font.Font.get_ascentget the ascent of the font
pygame.font.Font.get_descentget the descent of the font

总结一下,font模块中比较常用的方法有:

pygame.font.Font(filename, size)
pygame.font.Font(pathlib.Path, size)

filename:字体文件的文件名;
pathlib.Path: 字体文件的路径;
size:字体的高height,单位为像素;

pygame.font.Font.render(text, antialias, color, background=None)

text:要显示的文字;
antialias: 是否抗锯齿;
color:字体颜色;
background:背景颜色(可选参数)

freetype模块的函数如下:

函数描述
pygame.freetype.get_error返回最近的FreeType错误
pygame.freetype.get_version返回FreeType版本
pygame.freetype.init初始化FreeType模块
pygame.freetype.quit取消初始化FreeType模块
pygame.freetype.get_init判断FreeType模块是否初始化
pygame.freetype.get_cache_size返回缓存大小
pygame.freetype.get_default_resolution返回模块的默认像素大小,以每英寸点数为单位。默认值为 72 DPI
pygame.freetype.set_default_resolution为模块设置默认像素大小,以每英寸点数为单位。如果可选参数被省略或为零,则分辨率将重置为 72 DPI
pygame.freetype.SysFont从系统字体中创建一个Font对象
pygame.freetype.get_default_font获取默认字体的文件名
pygame.freetype.Font根据所支持的字体中创建一个Font对象

对于使用freetype模块创建的Font对象,有下列方法:

函数描述
pygame.freetype.Font.nameProper font name.
pygame.freetype.Font.pathFont file path
pygame.freetype.Font.sizeThe default point size used in rendering
pygame.freetype.Font.get_rectReturn the size and offset of rendered text
pygame.freetype.Font.get_metricsReturn the glyph metrics for the given text
pygame.freetype.Font.heightThe unscaled height of the font in font units
pygame.freetype.Font.ascenderThe unscaled ascent of the font in font units
pygame.freetype.Font.descenderThe unscaled descent of the font in font units
pygame.freetype.Font.get_sized_ascenderThe scaled ascent of the font in pixels
pygame.freetype.Font.get_sized_descenderThe scaled descent of the font in pixels
pygame.freetype.Font.get_sized_heightThe scaled height of the font in pixels
pygame.freetype.Font.get_sized_glyph_heightThe scaled bounding box height of the font in pixels
pygame.freetype.Font.get_sizesreturn the available sizes of embedded bitmaps
pygame.freetype.Font.renderReturn rendered text as a surface
pygame.freetype.Font.render_toRender text onto an existing surface
pygame.freetype.Font.render_rawReturn rendered text as a string of bytes
pygame.freetype.Font.render_raw_toRender text into an array of ints
pygame.freetype.Font.styleThe font’s style flags
pygame.freetype.Font.underlineThe state of the font’s underline style flag
pygame.freetype.Font.strongThe state of the font’s strong style flag
pygame.freetype.Font.obliqueThe state of the font’s oblique style flag
pygame.freetype.Font.wideThe state of the font’s wide style flag
pygame.freetype.Font.strengthThe strength associated with the strong or wide font styles
pygame.freetype.Font.underline_adjustmentAdjustment factor for the underline position
pygame.freetype.Font.fixed_widthGets whether the font is fixed-width
pygame.freetype.Font.fixed_sizesthe number of available bitmap sizes for the font
pygame.freetype.Font.scalableGets whether the font is scalable
pygame.freetype.Font.use_bitmap_strikesallow the use of embedded bitmaps in an outline font file
pygame.freetype.Font.antialiasedFont anti-aliasing mode
pygame.freetype.Font.kerningCharacter kerning mode
pygame.freetype.Font.verticalFont vertical mode
pygame.freetype.Font.rotationtext rotation in degrees counterclockwise
pygame.freetype.Font.fgcolordefault foreground color
pygame.freetype.Font.bgcolordefault background color
pygame.freetype.Font.originFont render to text origin mode
pygame.freetype.Font.padpadded boundary mode
pygame.freetype.Font.ucs4Enable UCS-4 mode
pygame.freetype.Font.resolutionPixel resolution in dots per inch
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值