你如何将 pygame 显示的文本居中?

问题描述

我有这个代码,它没有在屏幕宽度的中间显示分配给变量“title”的文本。 除了根据文本的长度猜测位置之外,还有什么方法可以将其居中?

import pygame
pygame.init()
pygame.font.init()

WIDTH = 1920
HEIGHT = 1080

CYAN = (0,255,255)
RED = (255,0)

window = pygame.display.set_mode((WIDTH,HEIGHT))

def startwindow(): 
    titleFont = pygame.font.SysFont("Comic Sans MS",35)

    window.fill(RED)
    title = titleFont.render("Ball Game",False,CYAN)
    window.blit(title,(WIDTH//2,35))
    pygame.display.update()


startwindow()

解决方法

您应该首先在渲染后获取文本矩形,然后将矩形相对于屏幕宽度居中。之后你可以将它传递给 blit。

centerTitle = title.get_rect(center=(WIDTH/2,35))
window.blit(title,centerTitle)