You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pygame点击Credits按钮报错‘pygame.Surface’ object is not callable求助

报错原因

你代码的问题是局部变量覆盖了全局函数名:

  • 在MainMenu函数内,你用Credits作为变量名存储Menufont.render()的返回结果,这个返回值是pygame.Surface类型的对象,直接覆盖了全局定义的Credits()函数
  • 点击Credits按钮执行Credits()调用时,Python优先读取当前作用域下的Credits变量(Surface对象),把对象当作函数调用就会抛出'pygame.Surface' object is not callable错误
修复步骤
  1. 重命名MainMenu函数内的Credits按钮变量,避免和函数名冲突:
    把
Credits = Menufont.render("Credits", True, (3, 3, 116))

改为

Credits_btn = Menufont.render("Credits", True, (3, 3, 116))

同时把对应绘制按钮的代码改为:

screen.blit(Credits_btn, (863, 359))
  1. 修复Credits()函数内的遗漏错误:
    pygame.display.update缺少调用括号,改为
pygame.display.update()

否则Credits页面不会正常刷新显示内容。

验证

修改完成后点击Credits按钮就可以正常触发Credits函数,不会再抛出类型错误。

内容的提问来源于stack exchange,提问作者IMC364

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:45:02