文字显示
1.思路
把文字区域转换为image surface然后使用blit()函数绘制到display surface
2.字体的获取
#查找默认字体函数
pygame.font.get_default_font()
#查找系统字体
pygame.font.get_fonts()
- get_default_font函数返回pygame使用的默认字体的文件名称
- get_fonts函数返回当前系统中所有可用字体的名称列表
3.相关函数
#创建font类对象函数(只适用于使用系统字体)
pygame.font.SysFont(name,size,bold=False,italic=False)
各参数解析:
- name代表系统字体的名称,参数name为None时使用pygame默认字体
- size表示字体大小
- blod表示是否加粗
- italic表示是否倾斜
#Font类构造函数
__init__(filename,size)
参数解析:
- fillename表示字体文件名称,值为None时,使用默认字体
- size表示字体尺寸
注:使用自己的ttf字体文字显示文字必须使用Font构造函数创建字体对象
#文字区域转换为image surface的方法
render(text,antialias,color,background=None)
参数解析:
- text只能是单行表示待显示的文字
- antialias表示是否打开锯齿
- color表示文字颜色
- background表示背景颜色
#设置加粗
set_bold(bool)
#设置倾斜
set_italic(bool)
#设置下划线
set_underline(bool)
注:bool代表其接收的是布尔值,True或False
4.使用默认字体显示文字
#第一种方法
font=pygame.font.SysFont(None,32)
text=font.render("default font 0",True,(0,0,255))
#第二种方法
font=pygame.font.Font(None,32)
text=font.render("default font 0",True,(255,0,0))
注:绘制还需blit函数将其绘制到display surface上才能显示内容
5.使用系统字体显示文字
font=pygame.font.SysFont("arial",48)
text=font.render("system font",True,(255,0,0))
6.使用自己的ttf文件显示文字
font=pygame.font.Font("XXX.ttf",48)
text=font.render("system font",True,(255,0,0))
7.显示中文
font=pygame.font.SysFont("华文行楷",48)
text=font.render("你好,世界",True,(255,0,0))
8.具体实例
# 引入相关模块
import pygame,sys
# 函数声明与定义
def main():
# 初始化
pygame.init()
# 设置窗口大小
a=pygame.display.set_mode((800,700))
# 填充背景色为白色
a.fill((255,255,255))
# 主循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
# 用户点击叉号结束
pygame.quit()
sys.exit()
# 使用默认字体显示文字
font=pygame.font.Font(None,32)
text=font.render("Hello World",True,(255,0,0))
a.blit(text,(50,50))
# 使用系统字体显示文字
font1=pygame.font.SysFont("arial",32)
text1=font1.render("Hello World",True,(0,0,0))
a.blit(text1,(50,100))
# 显示中文
font2=pygame.font.SysFont("华文新魏",48)
text2=font2.render("你好,世界",True,(0,255,0))
a.blit(text2,(50,150))
# 刷新窗口页面
pygame.display.flip()
if __name__=='__main__':
# 调用函数
main()
运行效果如下: