调整Pygame字体及字号时触发AttributeError错误求助
解决Pygame中AttributeError: 'pygame.font.Font' object has no attribute 'SysFont'问题
错误根源
SysFont是pygame.font模块的顶层函数,不属于Font类或其实例的方法,你错误地将其当作Font对象的方法调用。- 代码中存在其他调用错误:比如用模块名
font调用render方法(正确应该用Font实例),以及错误使用Font.size类方法。
修正后的代码
# 确保已初始化pygame和字体模块 pygame.init() pygame.font.init() # 示例时间变量,替换为你的实际变量 time = 500 coun = str(round((time + 1000) / 1000)) # 正确调用SysFont创建字体实例 my_font = pygame.font.SysFont('freesansbold', 50) # 调用实例方法设置加粗 my_font.set_bold(True) # 直接通过字体实例获取文本尺寸 width, height = my_font.size(coun) # 通过字体实例调用render生成文本Surface counter = my_font.render(coun, True, (50, 50, 50))
关键修正点
- 移除错误的
pygame.font.Font.size(my_font, 50):Font实例自带size()方法,直接传入目标文本字符串即可获取宽高。 - 将
font.render改为my_font.render:render是Font实例的专属方法,必须通过已创建的字体对象调用。 - 规范
SysFont调用:始终通过pygame.font.SysFont()(或导入为font.SysFont())调用,不能在Font实例后链式调用该函数。
内容的提问来源于stack exchange,提问作者Raven
相关产品推荐
相关产品推荐

