为了账号安全,请及时绑定邮箱和手机立即绑定

将文本添加到矩形

将文本添加到矩形

婷婷同学_ 2021-11-30 16:14:06
所以我定义了一个函数 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
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

首先,您需要一个pygame.font,它可以由pygame.font.SysFont()或创建pygame.font.Font。例如:


import pygame.font


font = 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.freetype


font = 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)


查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信