📅  最后修改于: 2023-12-03 15:03:54.883000             🧑  作者: Mango
在游戏中经常需要显示文本信息,例如得分、时间等等。而 pygame 提供了方便的文本渲染功能,可以轻松地显示需要的文本信息。
使用 pygame 中的 font.Font
类创建字体对象,并使用 render
方法将文本渲染到屏幕上。
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
font = pygame.font.Font(None, 36)
text = font.render("Hello, World!", True, (255, 255, 255))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.fill((0, 0, 0))
screen.blit(text, (100, 100))
pygame.display.update()
上面的代码中,我们首先初始化 pygame 并创建窗口。然后,使用 font.Font
创建字体对象,其中第一个参数为字体文件的路径,如果为 None
则使用系统默认字体。第二个参数为字体大小。接着使用 font.render
渲染文本,第一个参数为要渲染的文本,第二个参数为是否使用抗锯齿,第三个参数为文本颜色。
在主循环中,我们首先清空屏幕,然后将渲染后的文本使用 screen.blit
方法绘制到屏幕上,最后使用 pygame.display.update
更新屏幕。
如果需要使用自定义字体,可以将字体文件放在程序所在目录中,或者指定字体文件的绝对路径。
font = pygame.font.Font("myfont.ttf", 36)
可以使用 SWS_BOLD
、SWS_ITALIC
、SWS_UNDERLINE
三个常量设置加粗、斜体、下划线样式。
font = pygame.font.Font(None, 36)
text = font.render("Hello, World!", True, (255, 255, 255), pygame.SWS_BOLD)
如果要渲染的文本长度超过一行,可以调用 render
方法的另一个版本,并指定最大宽度和自动换行。
font = pygame.font.Font(None, 36)
text = font.render("Hello, World! This is a long text that will wrap.", True, (255, 255, 255), None, 200, True)
上面的代码中,第六个参数指定了最大宽度,第七个参数为是否自动换行。
本文介绍了 pygame 的文本渲染功能,包括渲染文本、自定义字体、字体样式和自动换行等。通过应用这些技巧,可以方便地显示游戏中的文本信息,提升游戏体验。