public NaveEnemigaAsalto(string nombre, Canvas canvas,
                          int posicionX, int posicionY, int ancho, int largo,
                          int posicionVerticalPorDefecto,
                          int duracionDesplazamiento = 5,
                          int periodoInvisibilidad   = 0,
                          int periodoModoSigilo      = 0,
                          int vidas = 1)
     : base(nombre, canvas, posicionX, posicionY, ancho, largo,
            posicionVerticalPorDefecto, duracionDesplazamiento, periodoInvisibilidad,
            periodoModoSigilo, vidas)
 {
     generadorCaminos = new GeneradorCaminoVueloLineal();
 }
        public NaveEnemigaCazadora(string nombre, Canvas canvas,
                                   int posicionX, int posicionY, int ancho, int largo,
                                   int posicionVerticalPorDefecto,
                                   int duracionDesplazamiento = 5,
                                   int periodoInvisibilidad   = 0,
                                   int periodoModoSigilo      = 0,
                                   int vidas = 1)
            : base(nombre, canvas, posicionX, posicionY, ancho, largo,
                   posicionVerticalPorDefecto, duracionDesplazamiento, periodoInvisibilidad,
                   periodoModoSigilo, vidas)
        {
            generadorCaminos = new GeneradorCaminoVueloLineal();

            // Suscribirse al evento de animación completa
            // para cambiar de algoritmo de generación del camino del movimiento
            animacionEjeX.Completed += CambiarAlgoritmoCaminoMovimiento;
        }
 private void CambiarAlgoritmoCaminoMovimiento(object sender, EventArgs e)
 {
     if (generadorCaminos.GetType() == typeof(GeneradorCaminoVueloLineal))
     {
         generadorCaminos = new GeneradorCaminoVueloOndulado();
     }
     else
     {
         if (generadorCaminos.GetType() == typeof(GeneradorCaminoVueloOndulado))
         {
             generadorCaminos = new GeneradorCaminoVueloCurvas();
         }
         else
         {
             generadorCaminos = new GeneradorCaminoVueloLineal();
         }
     }
 }