当我想进入Game Over屏幕时,我遇到了这个问题。
Traceback (most recent call last):
File "C:\Users\MO\Desktop\Twerk\ballbounce_changed.py", line 215, in <module>
game()
File "C:\Users\MO\Desktop\Twerk\ballbounce_changed.py", line 191, in game
text("Game Over",30,white,300)
TypeError: 'pygame.Surface' object is not callable
这是现有屏幕的代码部分:
while finish == True:
screen.blit(menu,[0,0])
text("Game Over",30,white,300)
text("Instructions",310,white)
text("-----------------------------------------------------",320,white)
text("Avoid the the enemies",340,white)
text("Last as long as you can!",360,white)
text("Press space to start",420,white)
# display.update()
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
repeat = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
repeat = True
if repeat == False:
pygame.quit()
else:
game()
game()
如果我通过屏幕删除游戏中的文本,它确实有效。我一介绍文字,就会收到上述错误消息
(缩进不正确)我在这里有完整的代码http://pastebin.com/VBkhX4kt
谢谢
答案 0 :(得分:1)
错误是因为在第93行,您覆盖了函数中变量text
与任何font.render()返回的绑定。
93: text = font.render('Starting Twerk... ', True, (100,100,100))
因此,稍后,当你调用text(...)
它没有调用你之前定义的函数时,它会尝试将text
视为可调用的(它不是,因为它现在是一个pygame。表面对象)。
解决方案是更改该行,而不是覆盖您的text
函数。