另一篇文章中介绍了font模块的相关内容,但是实际上有很多不常用的。这边举几个例子,包含常用的步骤
font模块使用 显示文字
实际上就几个必要的步骤
1.创建字体对象
要使用字体自然要有字体对象的实例
创建并选择字体。创建的方法有多种,选择合适的就ok。
myfont = pygame.font.Font("msyh.ttf", 32) # 用程序目录下的msyh.ttf字体文件
myfont = pygame.font.SysFont("msyh", 32) # 用系统字体
第一个参数: 字体文件
第二个参数: 字体大小
2.使用创建的字体实例调用render方法绘制成图片
实际上是使用Font实例
Text = "文本"
font_surface = myfont.sender(Text, True, BLUE,background = None)
第一个参数:要显示的内容
第二个参数:是否以抗锯齿的方式显示,True:抗锯齿, False:不抗锯齿
第三个参数: 显示文本的颜色
第四个参数: 背景
绘制到目标
screen.blit(font_surface, (0,0))
#绘制到目标screen上
全部代码
import pygame,sys
# 1.初始化操作
pygame.init()
# 2.创建游戏窗口
window_size_width = 600
window_size_height = 400
window = pygame.display.set_mode((window_size_width,window_size_height))
# 设置游戏标题
pygame.display.set_caption('游戏test')
# 创建字体对象
font = pygame.font.Font("C:/Windows/Fonts/STXINWEI.TTF",30) # 参数:字体文件,字体大小
# 创建文字对象
text = font.render("你好",True,(255,0,0),(255,255,0)) # 参数:文字内容,True,文字颜色,背景颜色
# 缩放和旋转
text_rotozoom = pygame.transform.rotozoom(text, 90, 2) # 参数:目标,旋转角度,缩放比例
w,h = text_rotozoom.get_size() # 获取文字大小
window.blit(text_rotozoom,((window_size_width-w)/2,(window_size_height-h)/2 )) # 渲染到窗口并设置字体显示位置
pygame.display.flip() # 第一次刷新
# 3.让游戏保持一直运行的状态
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 如果点击了关闭按钮
sys.exit()
文字保存成png格式透明背景
import pygame
pygame.init()
text = "text"
my_font = pygame.font.SysFont("arial", 64)
name_surface = my_font.render(text, True, (0, 0, 0))
pygame.image.save(name_surface, "name.png")