python3 pygame学习(4):文字的使用

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我习惯使用填充!)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章