如何在 Pygame 中将文本居中

新手上路,请多包涵

我有一些代码:

 # draw text
font = pygame.font.Font(None, 25)
text = font.render("You win!", True, BLACK)
screen.blit(text, [SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2])

我怎样才能得到文本的宽度和高度,所以我可以这样居中文本:

 screen.blit(text, [SCREEN_WIDTH / 2 - text_w / 2, SCREEN_HEIGHT / 2 - text_h / 2])

如果这不可能,另一种方法是什么?我找到 了这个 例子,但我并没有真正理解它。

原文由 Xerath 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

您可以使用 text.get_rect() 获取渲染文本图像的尺寸,它返回一个 Rect 对象,其中包含 widthheight 的属性(参见链接的文档,其中包括完整列表)。即你可以简单地做 text.get_rect().width

原文由 otus 发布,翻译遵循 CC BY-SA 3.0 许可协议

当你抓住它时,你总是可以将文本矩形居中:

 # draw text
font = pygame.font.Font(None, 25)
text = font.render("You win!", True, BLACK)
text_rect = text.get_rect(center=(SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
screen.blit(text, text_rect)

只是另一种选择

原文由 The4thIceman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题