Pygame.sprite.Group.add错误

M H*_*her 1 python pygame python-3.3

好的,这是代码的问题

lives_group = pygame.sprite.Group()
life_pos = [603,566,529,492]
pos = 0
for life in range(0,ship.lives):
    live = game_display.Life([10, life_pos[pos]])
    lives_group.add(live)
Run Code Online (Sandbox Code Playgroud)

.Life ting是这样的:

class Life(pygame.sprite.Sprite):
    def __init__(self, location):
        self.image = pygame.image.load('Spaceship_life.png')
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = location
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Traceback (most recent call last):
  File "C:\Users\------\My programs\old\GUI based games\Spaceblaster\0.1\main.py", line 17, in <module>
    lives_group.add(live)
  File "C:\Python33\lib\site-packages\pygame\sprite.py", line 360, in add
    sprite.add_internal(self)
  File "C:\Python33\lib\site-packages\pygame\sprite.py", line 163, in add_internal
    self.__g[group] = 0
AttributeError: 'Life' object has no attribute '_Sprite__g'
Run Code Online (Sandbox Code Playgroud)

对不起我的名字,但我保持它的长度以防万一

Igo*_*ato 8

不要忘记调用父的构造函数

class Life(pygame.sprite.Sprite):
    def __init__(self, location):
        super(Life, self).__init__()
        self.image = pygame.image.load('Spaceship_life.png')
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = location
Run Code Online (Sandbox Code Playgroud)