我找到了很多使用 pygame 及其字体库的教程,但它们都显示了相同的内容。它们都向您展示了如何在背景上写一些纯文本,这很棒,但除此之外,我发现的有用信息并不多。
在我正在进行的项目中,我有菜单按钮,我已经实现为精灵。当你将鼠标悬停在它们上面时,它们会改变颜色,这一切都很好。我想做的是在这些按钮上写文字,但我对如何做到这一点感到困惑。从文档 font.render 工作如下:
“这将创建一个新的 Surface 并在其上呈现指定的文本。Pygame 无法直接在现有 Surface 上绘制文本:相反,您必须使用 Font.render - 在新 Surface 上绘制文本来创建图像(Surface)文本,然后将此图像blit到另一个Surface上。”
因此,我尝试获取附加到我的精灵的图像并将我的文本直接粘贴到它上面。这似乎几乎什么都没做:
resume = self.button_font.render(
'Resume Game',
True,
constants.WHITE,
(23, 56, 245) # Main color of the button, tried without this as well
)
self.resume_button.image.blit(
resume,
self.resume_button.rect,
)
我知道代码可以运行,但你永远看不到任何文本。如果我将文本直接blit 到我的主屏幕表面,它只会写在我的resume 按钮的顶部(当然取决于blit 顺序)。我究竟做错了什么?文档似乎表明这是处理它的正确方法,但我还没有找到其他人这样做。任何帮助将不胜感激。