pygame提供了字体处理,但是对中文的支持貌似不是很好!(汗……)
pygame对于字体的处理主要是pygame.font.Font()对象
对象中的方法如下
pygame.font.font.render— 在一个新的表面绘制文本
pygame.font.font.size —确定需要渲染文本的空间量
pygame.font.font.set_underline —如果文本呈现的下划线
pygame.font.font.get_underline —检查是否带下划线的文本将被呈现
pygame.font.font.set_bold —启用粗体文字假渲染
pygame.font.font.get_bold —检查文本呈现的是大胆
pygame.font.font.set_italic —使斜体假渲染
pygame.font.font.metrics —获取在过去的各个字符度量。
pygame.font.font.get_italic —如果支票将rendered italic文本
pygame.font.font.get_linesize —获得该字体的文本的行间距
pygame.font.font.get_height —得到的字体高度
pygame.font.font.get_ascent —获得字体的提升
pygame.font.font.get_descent —获得字体的血统
其中最常用的是pygame.font.font.render()方法。
这个方法一个接收三个参数,1:文本内容,2:(我也不是很懂,通常传入0或者1)3:颜色的RGB值
例:
#创建字体对象
font=pygame.font.Font(None,56)
#文本与颜色
text=font.render("I love Python",1,(255,0,0))
上面代码我们实例化一个字体对象,(第一个参数是字体,第二个参数是字体大小)
然后就是绘制文本内容为”I lvoe Python”,并且设置字体的颜色为红色。
对了再说一句,这个font也是一个surface对象!可以使用surface对象的方法。
例如可以使用Surface对象中个get_rect方法设置他的位置(center=(x,y)x,y是坐标值)
textpos = text.get_rect(center=(150,150))
# -*- conding:utf-8 -*-
import pygame
import sys
pygame.init()
#绘制窗口
screen=pygame.display.set_mode((600,400),0,32)
#绘制背景
background=pygame.Surface(screen.get_size())
#填充颜色
background.fill(color=(255,255,23))
#创建字体对象
font=pygame.font.Font(None,56)
#文本与颜色
text=font.render("I love Python",1,(255,10,10))
#获取中心的坐标
center=(background.get_width()/2,background.get_height()/2)
#获取设置后新的坐标区域
textpos = text.get_rect(center=center)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#将字体填充到背景
background.blit(text, textpos)
#将背景填充到窗口
screen.blit(background,(0,0))
pygame.display.update()
最后要注意一下层级关系,先将文字填充到背景层上,然后再将背景填充到屏幕上。
这个使用层级以及顺序关系滴!(ps我习惯使用填充!)