Pygame移动矩形内居中显示1-4位数字文本的实现问题
实现文本居中的方法
Pygame的文本渲染返回的Surface对象自带get_rect()方法,可以获取文本的实际宽高,你只要将文本矩形的中心和方块的中心对齐,即可适配任意长度的数字,无需手动计算不同位数的偏移值。
你只需要修改sqr类的numberTextFunc方法,修改后的代码如下:
def numberTextFunc(self, X, Y): numberText = self.numberFont.render(f"{self.number}", True, (87, 63, 63)) # 方块固定尺寸为120*120,中心点坐标为左上角坐标各加60 block_center = (X + 60, Y + 60) # 直接将文本矩形的中心对齐方块中心 text_rect = numberText.get_rect(center=block_center) screen.blit(numberText, text_rect)
修改完成后运行即可看到所有数字不管位数多少,都会自动在方块内部居中显示。
内容的提问来源于stack exchange,提问作者logan9997
相关产品推荐
相关产品推荐

