将文本添加到矩形

所以我定义了一个函数 Meteor 并设置了尺寸以及它在屏幕上的显示位置。


def Meteor(Meteorx, Meteory, Meteorw, Meteorh, colour):

    pygame.draw.rect(Screen, colour, [Meteorx,Meteory, Meteorw, Meteorh])

但我想向其中添加文本,但我不知道如何将其 blit 到矩形上(注意:我曾尝试使用 font.render 等)。我是正确的方法还是有比将它放在矩形表面上更简单的方法。


源代码https://github.com/WamblyTK/Word-Blaster/blob/master/Full%20Draft%20%231


婷婷同学_
浏览 152回答 1
1回答

呼唤远方

首先,您需要一个pygame.font,它可以由pygame.font.SysFont()或创建pygame.font.Font。例如:import pygame.fontfont = pygame.font.SysFont('Times New Roman', 30)使用字体对象,文本可以通过.render(). 结果是一个pygame.Surface对象。如果需要,您可以将表面缩放到特定大小,按pygame.transform.smoothscale.最后,可以通过 将文本绘制到表面blit。例如:def Meteor(Meteorx, Meteory, Meteorw, Meteorh, colour):    text = font.render('test text', False, colour)    text = pygame.transform.smoothscale(text.convert(), (Meteorw, Meteorh))    Screen.blit(text, (Meteorx, Meteory))正如下面的评论中提到的,它更容易使用pygame.freetype。例如:import pygame.freetypefont = pygame.freetype.SysFont('Times New Roman', 30)def Meteor(Meteorx, Meteory, Meteorw, Meteorh, colour):    font.render_to(Screen, (Meteorx, Meteory), 'test text', colour, size=Meteorw)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python