我已经在更长的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对象不可调用。有什么建议吗?
答案 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?尝试包含更多代码。)或者我的解决方案可能不正确。 告诉我,如果有效。