python - TypeError: 'pygame.Surface' 对象不可调用(数组有问题,在 Pygame 中)
问题描述
def outputting():
screen.blit(backgroundE, [0, 0])
z = random.randint(0, 3000)
text1 = words[z]
screen.blit(font400.render(text1, False, (255, 255, 255)), (100, 500))
pygame.display.update()
pygame.time.wait(10000)
...
outputting()
我在 Stackoverflow 上找不到与我的问题相关的解决方案。我意识到问题出在我的阵列上。(该数组包含一堆单词)。我无法发布我的整个代码,因为它现在将近 1000 行。一切正常,除非我将数组引入代码中,但我不断收到错误消息:
text1 = words(z)
TypeError: 'pygame.Surface' object is not callable
我几乎尝试了所有方法并且卡住了。我需要有一个数组或类似的东西,我可以在其中存储一组(3000)个单词,并且我可以随机输出其中一个。
任何类型的帮助都会很棒,
解决方案
text1 = words(z)
TypeError: 'pygame.Surface' 对象不可调用
words
似乎是一个 Surface 对象,实际上是不可调用的;你不能()
在那个物体上使用。这就是错误消息告诉您的内容。
但是你也有这个代码:
z = random.randint(0, 3000)
text1 = words[z]
看来这里words
应该是一个字符串列表。
首先,确保您没有words
用另一个对象(在您的情况下为 a Surface
)覆盖您的列表。
其次,要从列表中获取随机元素,只需使用random.choice
.
此外,您不应该只调用pygame.time.wait(10000)
,因为在此期间,您的窗口不会更新,也不会响应。您应该创建一个事件循环并处理该QUIT
循环中的事件。
推荐阅读
- php - 如何将 ID 从 url 传递到 laravel 中的控制器
- android - 在 Android Studio 中修改计算器
- javascript - 如何在节点js中以JSON解析对象中的函数
- java - 如何使用 poi 将 jtable 保存到 excel 中,包括标题?
- python - 跟踪 BFS 中的节点 - Python、迷宫
- r - 为 R 安装 qiimer 包时出错
- javascript - 身份验证 POST 适用于“请求”但不适用于“节点获取”
- excel - 是否可以立即从表单更新 Excel 单元格,而不需要按下更新按钮?
- java - 如何在休眠中的多对多映射中加入中间表
- javascript - Angular 项目没有运行