'TypeError:参数1必须是pygame.Surface,而不是list':不理解

时间:2019-12-01 03:57:43

标签: python pygame typeerror

我看过其他类似的页面,但是答案是对他们的代码的,但我不理解,错误提示:

  

TypeError:参数1必须是pygame.Surface,而不是list

代码如下:

def get_mask(self):
    return pygame.mask.from_surface(self.img)

def draw_window(win, block):
    win.blit(BG_IMG, (0, 0))
    block.draw(win)
    pygame.display.update()

def main():
    block = Block(200,200)
    win = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT))

    run = True
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False

            draw_window(win, block)

    pygame.quit()
    quit()

main()

因此,如果您有答案,请告诉我们!

1 个答案:

答案 0 :(得分:0)

初始化BG_IMG时,可能已经创建了一个列表:

BG_IMG = [pygame.image.load(...)]

因此,变量BG_IMG不是单个pygame.Surface实例。这是一个包含1个元素的列表。

声明一个对象而不是一个列表:

BG_IMG = pygame.image.load(...)