pygame文字换行

我研究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坐标上进行调整,以便在屏幕上按顺序显示每行。