pygame文字绘制机制

这是学习嵩天老师的课程,习得并引以为笔记。

何为文字绘制?增在python中以print()来打印文字在屏幕上,但是在pygame上用print绘制特定的文字是十分困难的,所以不能使用print,而是要使用特定的函数。一般是使用pygame.freetype这个库,先来说说pygame.freetype这个库。
使用pygame.freetype 向屏幕上绘制特定文体的文字,不能直接用print(),而是用像素根据字体点阵图绘制,不管是英文还是中文,都一样。freetype是绘制文字的增强方法,需使用额外的 import 将其引入,注意,引入库要在import pygame,sys之后引入。使用字体,那么问题来啦,字体在哪里来?其实在Windows系统中,在目录C:\Windows\Fonts里面就有,字体文件的拓展名为 *.ttf 和 .ttc, 绘制文字的步骤如下:
pygame文字绘制机制_第1张图片
下面我们来看一下Font类型,它是根据字体文件来去形成一个字体类型,使用方法为:pygame.freetype.Font(file,size=0) 其中file为字体类型名称或路径,size为字体大小。
pygame文字绘制机制_第2张图片
下面我们来写段代码试试吧

#!/sur/bin/env python
# -*- coding:utf-8 -*-
# author: fengderong time:2019/7/23

import pygame,sys
import pygame.freetype

pygame.init()
screen = pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame文字绘制")
GOLD = 255,251,0 #color

f1 = pygame.freetype.Font("C://Windows//Fonts//msyh.ttc",36)#使用微软字体
f1rect = f1.render_to(screen,(200,160),"干得漂亮",fgcolor=GOLD,size=50)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    pygame.display.update()

结果:
pygame文字绘制机制_第3张图片
另外,还可以使用另一个函数来实现这个结果,使用render类,这个只有五个参数,且返回的的是一个元组(包含Surface对象和Rect对象)
pygame文字绘制机制_第4张图片
改造了一下代码,执行效果使一样的。

import pygame,sys
import pygame.freetype

pygame.init()
screen = pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame文字绘制")
GOLD = 255,251,0 #color

f1 = pygame.freetype.Font("C://Windows//Fonts//msyh.ttc",36)#使用微软字体
#f1rect = f1.render_to(screen,(200,160),"干得漂亮",fgcolor=GOLD,size=50)
f1surf,f1rect = f1.render("干得漂亮",fgcolor=GOLD,size=50)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    screen.blit(f1surf,(200,160))#返回出现在要绘制的屏幕上
    pygame.display.update()

今天学习到此结束,要努力继续加油呀!!

你可能感兴趣的:(成长,成长)