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.