def __init__(self, screen):
     self.screen = screen
     self.spriteSheet = SpriteSheet(SPRITE_SHEET)
     self.colisionManager = ColisionManager()
     self.landScapeManager = LandScapeManager(screen)
     self.soundManager = SoundManager()
     self.components = pygame.sprite.Group()
class ComponentManager:
    """
    classdocs
    """

    def __init__(self, screen):
        self.screen = screen
        self.spriteSheet = SpriteSheet(SPRITE_SHEET)
        self.colisionManager = ColisionManager()
        self.landScapeManager = LandScapeManager(screen)
        self.soundManager = SoundManager()
        self.components = pygame.sprite.Group()

    def createDisparo(self, screen, imageFileName, width, height, arrayDisparos, parentObject):
        disparo = Disparo(screen, imageFileName, width, height, parentObject)
        disparo.posicionX = self.posicionX + self.width / 2
        disparo.posicionY = self.posicionY
        arrayDisparos.append(disparo)
        self.colisionManager.add(disparo)
        self.components.add(disparo)
        return disparo

    def createNaveHeroe(self, screen, posicionX, posicionY):
        sprite_rect_nave_heroe = [
            (40, 0, 45, 40),
            (0, 0, 40, 40),
            (83, 0, 40, 40),
            (40, 40, 45, 40),
            (0, 40, 40, 40),
            (83, 40, 40, 40),
        ]
        imagen_disparo = "lasser.png"
        naveHeroe = NaveHeroe(screen, sprite_rect_nave_heroe, imagen_disparo, 40, 40, posicionX, posicionY)
        naveHeroe.spriteSheet = self.spriteSheet
        naveHeroe.setColisionManager(self.colisionManager)
        self.colisionManager.add(naveHeroe)
        self.components.add(naveHeroe)
        return naveHeroe

    def createNaveEnemiga(self, screen, posicionX, posicionY, rutina_movimiento):
        sprite_rect_nave_enemiga = [(59, 261, 32, 32)]
        imagen_disparo = "lasser.png"
        naveEnemiga = NaveEnemiga(screen, sprite_rect_nave_enemiga, imagen_disparo, 32, 32, posicionX, posicionY)
        naveEnemiga.rutina_movimiento = rutina_movimiento
        self.colisionManager.add(naveEnemiga)
        self.components.add(naveEnemiga)
        return naveEnemiga

    def checkRemove(self):
        spritesBorrar = []
        for item in self.components.sprites():
            if item.borrar:
                spritesBorrar.append(item)

        for item in spritesBorrar:
            self.colisionManager.remove(item)
            self.components.remove(item)

    def createEnemies(self, enemies, velocidadJuego, vidas):
        posicionX = random.randint(1, pygame.display.get_surface().get_width() - 21)
        enemie = self.createNaveEnemiga(self.screen, posicionX, 10, RUTINA_DIAGONAL)
        # enemie = self.createNaveEnemiga(self.screen,   'rd2.png', 'lasser.png', 25, 25, posicionX, 10, RUTINA_DIAGONAL)
        #  enemie = self.componentManager.createNaveEnemiga(self.screen,   'rd2.png', 'lasser.png', 25, 25, ((self.screenWidth / 2) - 20), (self.screenHeight - 400), RUTINA_RECTO)
        enemie.velocidad = velocidadJuego
        enemie.vidas = vidas
        enemies.add(enemie)

    # Crea una rutina de dos enemigos que avanzan en paralelo hacia abajo
    # desde cada extremo de la pantalla
    def rutinaEnemigosEnParalelo(self, enemies, vidas):
        enemie1 = ComponentManager.createNaveEnemiga(self, self.screen, 50, 10, RUTINA_RECTO)
        enemie1.vidas = vidas
        enemies.add(enemie1)
        enemie2 = ComponentManager.createNaveEnemiga(
            self, self.screen, pygame.display.get_surface().get_width() - 50, 10, RUTINA_RECTO
        )
        enemie2.vida = vidas
        enemies.add(enemie2)