对象没有属性:' add_internal'

时间:2015-09-09 08:29:44

标签: python attributes pygame

我使用Pygame制作平台游戏,我尝试使用Class来绘制每个级别的平台。

这是Level01的类:

class Level01(Level):
def __init__(self):
    Level.__init__(self)

    walls = [[300, 600, 210, 70],
             [500, 500, 210, 70]
             ]

    for item in walls:
        wall = Wall(item[0], item[1], item[2], item[3])
        self.wall_list.add(wall)

此代码中的最后一行(self.wall_list.add(wall)似乎是我遇到错误的地方。它返回' AttributeError:' Wall'对象没有属性' add_internal'。

以下是Wall的课程:

class Wall(object):
def __init__(self, x, y, width, height):
    super().__init__()
    self.image = pygame.Surface([width, height])
    self.image.fill(green)

    self.rect = self.image.get_rect()
    self.rect.x = x
    self.rect.y = y

有人能帮助我吗?

编辑:这是Level类的代码:

class Level(object):
wall_list = None
enemy_sprites = None

def __init__(self):
    self.wall_list = pygame.sprite.Group()
    self.enemy_sprites = pygame.sprite.Group()

1 个答案:

答案 0 :(得分:1)

在我看来wall_listGroup(或其中的任何子类),并且您尝试向其添加非Sprite对象(提示:{{1}在所有添加的精灵上调用Group

如果您想在add_internal课程中使用Group,请Wall继承Wall