Python 如何在pygame中仅将文本居中于x轴,而能够移动y轴?

Python 如何在pygame中仅将文本居中于x轴,而能够移动y轴?,python,pygame,Python,Pygame,我试图把文本放在屏幕的中心,但也放在顶部,以便在中心标记文本。为了使文本当前居中,我使用下面的代码 info = pygame.display.Info() screen = pygame.display.set_mode((info.current_w, info.current_h), pygame.FULLSCREEN) screen_rect = screen.get_rect() txt = font.render("some random message", T

我试图把文本放在屏幕的中心,但也放在顶部,以便在中心标记文本。为了使文本当前居中,我使用下面的代码

info = pygame.display.Info()
screen = pygame.display.set_mode((info.current_w, info.current_h), pygame.FULLSCREEN)
screen_rect = screen.get_rect()

txt = font.render("some random message", True, color)

screen.blit(txt, txt.get_rect(center=screen_rect.center))
但是我找不到一种方法来修改中心,只使用
get_rect()
编辑y轴。我在文档中也找不到关于
get_rect()
函数的详细说明。

该对象具有以下属性:

x, y 
top, left, bottom, right 
topleft, bottomleft, topright, bottomright
midtop, midleft, midbottom, midright
center, centerx, centery 
size, width, height
w,h
因此,您可以将
centerx
设置为屏幕的
centerx
,使矩形居中而不影响
y

screen.blit(text, text.get_rect(centerx=screen_rect.centerx))
为了完成,如果你想让它在顶部居中,你可以写

screen.blit(text, text.get_rect(midtop=screen_rect.midtop)
在底部居中

screen.blit(text, text.get_rect(midbottom=screen_rect.midbottom)

@KrimsonWolf对象已经具有所有这些属性,因此不需要创建anything@KrimsonWolf它以前渲染正确吗?注意,在我的示例中,我使用了变量名
text
,而不是变量名
txt
。你的屏幕大小应该无关紧要,只要它足够大,可以适合你的需要text@KrimsonWolf它对我有用。你确定你没有引入任何其他问题吗?@KrimsonWolf我在窗口和全屏上都试过,所以这不应该是个问题。但如果您创建了新文件,是否确保调用
pygame.display.update()
?否则它不会更新屏幕。创建一个包含游戏循环、事件处理和更新窗口的完整示例。
sceen.blit()
绘制一个仅存在于内存中的“图像”(内部缓冲区)。换句话说,它是不可见的
pygame.display.update()。如果没有
pygame.display.update()
,您只能看到黑色(或上次更新到屏幕上的内容)。