TypeError:pygame.Surface对象不可调用

时间:2018-03-24 17:14:33

标签: python pygame pygame-surface

我已经在更长的python3程序结束时运行了这段代码:

pygame.init()

size = width, height = 1920, 1080
black = 0, 0, 0

screen = pygame.display.set_mode(size)

scoreboard = pygame.image.load("scorebug.png")
scoreboardrect = scoreboard.get_rect()

screen.fill(black)
screen.bilt(scoreboard, scoreboardrect)
pygame.display.flip()

当我运行它时,我得到错误消息pygame.surface对象不可调用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我不完全确定wron在这里发生了什么(由于缺乏关于错误的更多信息),但我有一些猜测。另外,我猜你上面写的代码不是整个代码,因为你没有导入pygame。 所以,如果您运行上面的代码,可能的原因是您遇到此错误(我认为)是由于blit()的错误使用。请记住,blit()的使用方式如下:

window.blit(Surface, (x, y))

(x,y)也称为dest,如果我错了,请更正。 但是,你给了它一个包含4个索引的元组,这就是:

(0, 0, scoreboardrect.get_size()[0], scoreboardrect.get_size()[1]

你可以通过而不是做

来解决这个问题
 scoreboardrect = scoreboard.get_rect()

只需在(0,0)

的位置进行blit即可
screen.blit(scoreboard, (0, 0))

然而,这可能不是正确答案,因为你没有包含所有代码(while循环在哪里?while循环包含代码吗?如果是,那么为什么你在那里初始化pygame?尝试包含更多代码。)或者我的解决方案可能不正确。 告诉我,如果有效。