我研究pygame时发现一个问题
那就是不能换行
"\n"不管用,有其他方法吗?
text = f.render('1\n2\n', True, (255, 255, 255))
怎么办?
我研究pygame时发现一个问题
那就是不能换行
"\n"不管用,有其他方法吗?
text = f.render('1\n2\n', True, (255, 255, 255))
怎么办?
参考GPT和自己的思路:您可以尝试使用pygame的font.SysFont()
方法来创建一个字体对象,然后使用该对象的render()
方法绘制包含换行符的多行文本。以下是一个示例代码:
import pygame
# 初始化 pygame
pygame.init()
# 创建一个窗口
win = pygame.display.set_mode((400, 300))
# 创建一个字体对象
fnt = pygame.font.SysFont('Arial', 20)
# 绘制多行文本
text = "This is a\nmultiline\ntext string."
lines = text.splitlines()
y = 50
for line in lines:
text_surface = fnt.render(line, True, (255, 255, 255))
win.blit(text_surface, (50, y))
y += text_surface.get_height()
# 刷新窗口
pygame.display.update()
# 等待退出
while True:
for evt in pygame.event.get():
if evt.type == pygame.QUIT:
pygame.quit()
quit()
在此示例中,我们首先创建了一个字体对象,然后将文本字符串分成多行,并在循环中逐行绘制。每行文本的位置是在 y
坐标上进行调整,以便在屏幕上按顺序显示每行。