类型错误:pygame.表面对象不是callab

2024-09-30 18:26:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个较长的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公司对象不可调用。有什么建议吗?你知道吗


Tags: 代码程序sizeinitdisplaywidthscreenpygame
1条回答
网友
1楼 · 发布于 2024-09-30 18:26:42

我不完全确定这里发生了什么(由于缺少更多关于错误的信息),但我有一些猜测。另外,我猜你上面写的代码不是完整的代码,因为你没有导入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循环是否包含代码?如果是这样,那你为什么要在那里玩游戏?尝试包含更多的代码。)或者我的解决方案不正确。 告诉我这样行不行。你知道吗

相关问题 更多 >