创建font对象
Pygame可以直接调用系统字体,或者也可以使用TTF字体。
函数:SysFont(name, size, bold=False, italic=False)
my_font = pygame.font.SysFont("arial", 16)
第一个参数是字体名,第二个是大小。该函数返回一个系统字体,这个字体与“bold”和“italic”两个flag相匹配。如果找不到,就会使用pygame的默认字体。可以使用**pygame.font.get_fonts()**来获得当前系统所有可用字体。
函数:Font(filename, size) 或者 Font(object, size)
my_font = pygame.font.Font("simsun.ttf", 16)
使用这个方法,需要把字体文件随同游戏一起发送,这样可以避免使用者机器上没有所需的字体(TTF字体集),注意最后要将字体的名称改为英文,也就是说路径中不能有中文。
使用字体
函数:render(text, antialias, color, background=None)
text_surface = my_font.render("Pygame is cool!", True, (0,0,0), (255, 255, 255))
第一个参数文字;第二个参数是个布尔值,表示是否开启抗锯齿,如果为True,字体会比较平滑,不过相应的速度有一点点影响;第三个参数是字体的颜色;第四个是背景色,如果你想没有背景色(也就是透明),就不加这第四个参数。
案例
import pygame
om pygame.locals import *
from sys import exit
if name == "main":
pygame.init()
SCREEN_SIZE = (640, 480)
screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32)
font = pygame.font.SysFont("arial", 16)
# font = pygame.font.Font('./ttf/font.ttf',16) #*.ttf是自己命名的TTF文件
font_height = font.get_linesize()
event_text = []
while True:
event = pygame.event.wait()
event_text.append(str(event))
#获得时间的名称
event_text = event_text[int(-SCREEN_SIZE[1]/font_height):]
#这个切片操作保证了event_text里面只保留一个屏幕的文字
if event.type == QUIT:
exit()
screen.fill((255, 255, 255))
y = SCREEN_SIZE[1]-font_height
#找一个合适的起笔位置,最下面开始但是要留一行的空
for text in reversed(event_text):
screen.blit(font.render(text, True, (0, 0, 0)), (0, y))
#以后会讲
y-=font_height
#把笔提一行
pygame.display.update()
原文链接:https://blog.csdn.net/Hubz131/article/details/86740969