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.