这篇主要是介绍绘制文字。
import pygame,sys
from pygame.locals import *
pygame.init()
d = pygame.display.set_mode((400,400))
pygame.display.set_caption("Hello World!")
WHITE = (255,255,255)
GREEN = (0,255,0)
BLUE = (0,0,255)
# 创建一个 pygame.font.Font 对象,并加载字体和设置字体大小
fontObj = pygame.font.Font("/Users/wys/Desktop/仿宋_GB2312.ttf",35)
# pygame 没有提供直接在现有 Surface 上绘制文本的方法,用户必须使用 Font.render() 创建文本的图像 (Surface) ,然后将此图像着色到另一个 Surface 上。
# 绘制的文字是“你好啊世界”,True 表示字体有平滑的边缘,GREEN 表示字体颜色,BLUE 表示背景颜色
textSurfaceObj = fontObj.render("你好啊世界",True,GREEN,BLUE)
# 通过调用 Surface 对象的 get_rect() 方法从 Surface 对象创建 Rect 对象。
textRectObj = textSurfaceObj.get_rect()
# 矩形文本的位置中心在坐标 (200,200) 处
textRectObj.center = (200,200)
while True:
d.fill(WHITE)
d.blit(textSurfaceObj,textRectObj)
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
效果图如下:
pygame.font.Font.render(text, antialias, color, background=None)
antialias: 用于指定是否要进行抗锯齿的布尔值,文本的颜色和背景的颜色。抗锯齿是一种图形技术,可通过在文本和形状的边缘添加一点模糊来使其看起来不那么块状。使用抗锯齿绘制需要花费更多的计算时间,因此尽管图形看起来更好,但是您的程序运行速度可能较慢。如果放大锯齿线和反锯齿线,它们将如下所示:
background:用来设置背景颜色,如果您想要透明的背景,则只需在方法调用中忽略背景颜色参数即可。效果如下。