Pygame将2个表面连接在一起

时间:2018-02-20 00:54:46

标签: python python-3.x pygame

我正在尝试将文本表面添加到更大的文本表面。但我无法弄清楚如何。就我而言,文本表面彼此相邻,但我想让它们成为一体。这是我尝试做的一个例子,但我不知道正确的格式/命令。

font = pygame.font.SysFont(font, size)

text_surf1 = font.render(string1, True, black)
text_surf2 = font.render(string2, True, black)

text_surf1 += text_surf2


gameDisplay.blit(text_surf3, (x,y))

1 个答案:

答案 0 :(得分:4)

没有组合两个表面的功能,但你可以创建另一个pygame.Surface,传递前两个表面宽度的总和,然后将它们blit到第三个表面上。

txt1 = font.render(string1, True, black)
txt2 = font.render(string2, True, black)

# Create a surface and pass the sum of the widths.
# Also, pass pg.SRCALPHA to make the surface transparent.
txt3 = pg.Surface((txt1.get_width() + txt2.get_width(), txt1.get_height()), pg.SRCALPHA)

# Blit the first two surfaces onto the third.
txt3.blit(txt1, (0, 0))
txt3.blit(txt2, (txt1.get_width(), 0))

除非您想对组合曲面做其他事情,否则您也可以将两个彼此相邻的曲面blit到gameDisplay上。