将图形和文本混合到一个窗口中



我正在使用Python并使用livewires开发一个琐事游戏。我有一个理论,有一个默认的问题卡作为图像显示。然后让控制台将文本打印到准确定位的位置。问题、答案和解释将从文本文件中加载,程序将随机加载哪些。但如果这一理论可行,该程序实际上可以有任意多的问题或不同的主题,并且可以很容易地从记事本文件中进行编辑。我想我的问题是,有没有一种方法可以准确地定位打印的控制台文本,并允许它放置在pygame窗口内的图像顶部?

从文本文件加载问题听起来不错。使用pygame,您可以将文本定位在屏幕上的任何位置,这是一个两步过程:

question = "Is this a question?"
# Render the text:
font = pygame.font.SysFont("Arial", 20)
text_surface = font.render(question, true, (0,0,0))
# Blit the text to the screen
text_rect = text_surface.get_rect()
text_rect.center = (100,100)
screen.blit(text_surface, text_rect.topleft)

这就把问题拉到了想要的位置。

如果要处理多行问题,可以在文件中使用一个特殊字符来指示换行符(例如管道|),也可以制定算法来自动找出换行符的位置。接下来,逐行渲染和blit,在y坐标上添加一些像素。

最新更新