获取文本的边界矩形,并将矩形的中心设置为文本的中心。使用矩形blit文字:
text_rect = text.get_rect()
text_rect.center = (300, 300)
screen.blit(text, text_rect)
一行代码也一样:
screen.blit(text, text.get_rect(center = (300, 300)))
在函数中使用此代码:
def draw_circle(x, y, text):
pygame.draw.circle(screen, red, (x, y), 200)
screen.blit(text, text.get_rect(center = (x, y)))
见pygame.Surface.blit:
[...] dest 参数可以是一对表示 blit 左上角位置的坐标,也可以是一个 Rect,其中矩形的左上角将是用作 blit 的位置。
小例子:
import pygame
pygame.init()
window = pygame.display.set_mode((500, 500))
font = pygame.font.SysFont(None, 100)
clock = pygame.time.Clock()
text = font.render("Text", True, (255, 255, 0))
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
window_center = window.get_rect().center
window.fill(0)
pygame.draw.circle(window, (255, 0, 0), window_center, 100)
window.blit(text, text.get_rect(center = window_center))
pygame.display.flip()
clock.tick(60)
pygame.quit()
exit()