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.



      

Reply via email to