[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] pygame.sprite.Group problem



so, here is my main function:


def main()
    enemiesGroup.add(EnemyThingie("enemy.png", random.randint(-100, 100),random.randint(-100, 100), 4, 4))  #this error gets raised if the game isn't started  with one enemy
    print enemiesGroup.sprites()

    while 1:
        clock.tick(10)
        for event in pygame.event.get():
            if event.type == KEYDOWN and event.key == K_ESCAPE:
                exit()
        for x in range(0, EnemiesPerFrame):
            enemiesGroup.add(EnemyThingie("enemy.png", random.randint(-100, 100),random.randint(-100, 100), 4, 4))
        screen.fill((0,0,0))
        towersGroup.draw(screen)
        for item in towersGroup:
            pick = random.choice(enemiesGroup.sprites())
            item.shoot(pick, screen)
            pick.kill() #replace this with a .take_damage() function later. even better, build that part into shoot() func.
        enemiesGroup.draw(screen)
        for item in enemiesGroup:
            item.moveEnemyThingie()
        pygame.display.flip()
    return 0

problem is, i run it and get this:

[<EnemyThingie sprite(in 1 groups)>, <EnemyThingie sprite(in 1 groups)>]
Traceback (most recent call last):
  File "Game.py", line 94, in <module>
    if __name__ == '__main__': main(1)
  File "Game.py", line 85, in main
    pick = random.choice(enemiesGroup.sprites())
  File "/usr/lib/python2.6/random.py", line 261, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if seq is empty
IndexError: list index out of range


The error at the bottom tells me it thinks there are no sprites in enemiesList group, but the print() statement output at the top shows you there are two.