------------★Pygame系列教程★------------
Pygame教程01:初识pygame游戏模块
Pygame教程02:图片的加载+缩放+旋转+显示操作
Pygame教程03:文本显示+字体加载+transform方法
Pygame教程04:draw方法绘制矩形、多边形、圆、椭圆、弧线、直线和线条等
在Pygame中,font.render() 函数不支持直接在文本内容中插入换行符来创建多行文本。这是因为font.render() 函数仅支持渲染一行文本,并且“换行”字符不会被渲染。如果你需要在一个Surface对象上渲染多行文本,你需要分别渲染每一行,并调整每行文本的位置。
我们首先定义了多行文本内容text_lines,然后创建了一个字体对象font。接着,我们使用列表推导式来分别渲染每一行文本,并将结果存储在text_surfaces列表中。我们还计算了每行文本在屏幕上的位置,存储在text_positions列表中。
在游戏主循环中,我们遍历text_surfaces和text_positions,将每一行文本渲染到屏幕上。注意,我们在这里简单地将每行文本向下移动了字体高度加上一些额外的间距(10像素)。
# @Author : 小红牛
# 微信公众号:WdPython
import sys
import pygame
# 初始化 Pygame
pygame.init()
# 设置窗口大小
screen = pygame.display.set_mode((700, 500))
# 设置楷体字体
font = pygame.font.SysFont('kaiti', 50, bold=False, italic=False)
# 1.定义多行文本内容
text_lines = ["这是第一行文本", "这是第二行文本", "这是第三行文本"]
# 2.分别渲染每一行文本
text_surfaces = [font.render(line, True, (255, 255, 255)) for line in text_lines]
# 3.计算文本的位置(这里简单地将每行文本向下移动)
text_positions = [(180, 50 + i * (text_surfaces[0].get_height() + 10)) for i, _ in enumerate(text_lines)]
# 游戏主循环
while True:
# 处理事件队列
for event in pygame.event.get():
if event.type == pygame.QUIT:
# 关闭游戏
pygame.quit()
sys.exit()
# 填充背景颜色
screen.fill((0, 0, 0))
# 4.将每行文本渲染到屏幕上
for surface, pos in zip(text_surfaces, text_positions):
screen.blit(surface, pos)
# 5.更新屏幕显示
pygame.display.flip()
完毕!!感谢您的收看
----------★★历史博文集合★★----------