淘先锋技术网

首页 1 2 3 4 5 6 7

文字显示

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()


运行效果如下:
在这里插入图片描述