private void abrirActividad()
 {
     if (listActividades.SelectedItem != null)
     {
         Lecciones formLecciones = new Lecciones(lecciones[listActividades.SelectedIndex].PathLección, lecciones[listActividades.SelectedIndex].Tipo, idUsr, lecciones[listActividades.SelectedIndex].IdLección); //el índice del listBox es el mismo que el de la lista de lecciones
         formLecciones.swVolviendo = false;
         formLecciones.Show();
         this.Close();
     }
 }
Beispiel #2
0
 private void abrirActividad()
 {
     if (listActividades.SelectedItem != null)
     {
         Lecciones formLecciones = new Lecciones(lecciones[listActividades.SelectedIndex].PathLección, lecciones[listActividades.SelectedIndex].Tipo, idUsr, lecciones[listActividades.SelectedIndex].IdLección); //el índice del listBox es el mismo que el de la lista de lecciones
         formLecciones.swVolviendo = false;
         formLecciones.Show();
         this.Close();
     }
 }
        //void animarTeclado(Key teclaApretada)
        //{
        //    switch (teclaApretada)
        //    {
        //        case Key.A:
        //            teclado.BeginStoryboard(tecla);
        //            break;
        //        case Key.B:
        //            teclado.b.FontSize = 24;
        //            break;
        //    }
        //}

        private void ventana_KeyDown(object sender, KeyEventArgs e)
        {
            
            string textoParaHablar;

            ResultadoActividad result = new ResultadoActividad();
            string letra = e.Key.ToString().ToLower();

            try
            {
                if (e.Key == Key.RightShift || e.Key == Key.LeftShift) //si se aprieta el shift
                    swShiftActivo = true;

                if (e.Key == Key.RightAlt || e.Key == Key.LeftAlt) //si se aprieta el alt
                    swAltActivo = true;

                if (e.Key == Key.Capital)
                    if (e.IsToggled)
                        voz.hablarAsync("Bloqueador de mayúsculas activado");
                    else
                        voz.hablarAsync("Bloqueador de mayúsculas desactivado");

                if (e.Key == Key.NumLock)
                    if (e.IsToggled)
                        voz.hablarAsync("Bloqueador de números activado");
                    else
                        voz.hablarAsync("Bloqueador de números desactivado");

                bool swArribaEñe = false;
                if (adminPref.lugarDelAcento == lugarAcento.arribaDeLaEñe)
                    swArribaEñe = true;

                letra = auxLetras.corregirCarácter(letra, swShiftActivo, swAltActivo, swArribaEñe);

                if (auxLetras.esCarácterLegible(letra))
                {
                    if (letra == "space") letra = " ";
                    result = adminAct.ingresarLetraUsuario(letra.ToString());
                    if (result.continúaActividad)
                    {
                        if (result.letraCorrecta && !result.esperarPorAcento) //si la letra es correcta pero no hay que esperar por una vocal por el acento
                        {
                            posiciónCarácterActualEnPalabra++;
                        }
                    }
                    else
                    {
                        MediaPlayer reproductor = new MediaPlayer(); //se reproduce el sonido
                        reproductor.Close();
                        string rutaInicial = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\Recursos\Sonidos\";
                        if (File.Exists(rutaInicial + "finActividad.wav"))
                        {
                            reproductor.Open(new Uri(rutaInicial + "finActividad.wav"));
                            reproductor.Play();
                        }

                        adminEst.guardarEstadísticas(idUsuario, idActividad, adminAct.IdLecciónActual); //se guarda la estadística

                        string mensaje = "Muy bien! Terminaste todas las lecciones de esta actividad para practicar ";
                        switch (adminAct.TipoActividad)
                        {
                            case tipoActividad.palabras:
                                mensaje += " palabras";
                                break;
                            case tipoActividad.sílabas:
                                mensaje += " sílabas";
                                break;
                            case tipoActividad.letras:
                                mensaje += " letras";
                                break;
                            case tipoActividad.números:
                                mensaje += " números";
                                break;
                            case tipoActividad.símbolos:
                                mensaje += " símbolos";
                                break;
                        }

                        mensaje += "!. Ahora vas a ir al menú principal así podés elegir otra actividad para seguir practicando";

                        voz.hablar(mensaje);


                        //Lecciones ventanaAct = new Lecciones(rutaAct, tipoAct, idUsuario);
                        //ventanaAct.swVolviendo = true;
                        //ventanaAct.Show();
                        //this.Close();
                        Actividades ventanaAct = new Actividades(idUsuario);
                        ventanaAct.swVolviendo = true;
                        ventanaAct.Show();
                        this.Close();
                        return;
                    }

                    textoParaHablar = elegirMensajeParaHablar(result);

                    if (result.letraCorrecta) //se cargan las estadísticas
                        adminEst.cargarLetraAcierto(char.Parse(letra));
                    else
                        adminEst.cargarLetraError(char.Parse(letra));

                    medidor1.actualizarGráfico(adminEst.estadística.aciertos, adminEst.estadística.errores, miPincel); //se actualiza el medidor


                    if (result.tiempoAgotado)
                        textoParaHablar += ", tiempo agotado";


                    if (adminAct.swhayPalabraNueva)
                        cargarPalabra();

                    if (adminAct.swhayLecciónNueva)
                        adminEst.guardarEstadísticas(idUsuario, idActividad, adminAct.IdLecciónAnterior); //cambiar 1,1 por el número de la act y de la lecc

                    e.Handled = true; //se evita que se procese la tecla en el sistema, esto por los acentos y diéresis
                    //se actualizan las estadísticas
                    actualizarTxtEstadísticas();

                    animarTexto();

                    voz.hablarAsync(textoParaHablar);
                }

                if (e.Key == Key.Escape) //si aprieta escape, volver a las lecciones
                {
                    Lecciones ventanaAct = new Lecciones(rutaAct, tipoAct, idUsuario, idActividad);
                    ventanaAct.swVolviendo = true;
                    ventanaAct.Show();
                    this.Close();
                }

                if (e.Key == Key.F1) //F1, recordar texto actual a escribir y lo ya escrito
                {
                    recordarPalabraActual();
                }

                if (e.Key == Key.F2) //F2, deletrear palabra
                {
                    deletrearPalabraActual();
                }

                if (e.Key == Key.F3) //F3, ayuda de qué dedo apretar
                {
                    char miLetra;
                    char.TryParse(adminAct.LetraActualLección, out miLetra);
                    voz.hablarAsync(elegirAyudaQuéDedoUsar(miLetra));
                }

                if (e.Key == Key.F4) //F4, cambia el estado de visibilidad del teclado en pantalla
                {
                    if (miTeclado.IsVisible)
                    {
                        miTeclado.Visibility = Visibility.Hidden;
                        txtTexto.Margin = new Thickness(53, this.Width / 4, 49, 0);
                        voz.hablarAsync("Ocultando el teclado en pantalla");
                    }
                    else
                    {
                        miTeclado.Visibility = Visibility.Visible;
                        txtTexto.Margin = new Thickness(53, 36, 49, 0);
                        voz.hablarAsync("Haciendo visible el teclado en pantalla");
                    }
                }

                if (e.Key == Key.F5) //F5, cambiar el acento entre la derecha de la eñe y arriba de la misma
                {
                    if (adminPref.lugarDelAcento == lugarAcento.arribaDeLaEñe)
                    {
                        adminPref.lugarDelAcento = lugarAcento.derechaDeLaEñe;
                        voz.hablarAsync("Configurando el acento agudo a la derecha de la eñe");
                    }
                    else
                    {
                        adminPref.lugarDelAcento = lugarAcento.arribaDeLaEñe;
                        voz.hablarAsync("Configurando el acento agudo arriba y a la derecha de la eñe");
                    }
                }

                if (e.Key == Key.F6) //F6, lee las estadísticas
                {
                    actualizarMensajeEstadísticasVoz();
                }

                if (e.Key == Key.F9) //F9, abre el editor de actividades
                {
                    abrirActividades();
                }

                if (e.Key == Key.F8) //F8, abre el estadísticas
                {
                    abrirEstadísticas();
                }

                if (e.Key == Key.F12) //F12, abre las preferencias
                {
                    abrirPreferencias();
                }

                if (e.Key == Key.RightCtrl || e.Key == Key.LeftCtrl)//si usa las flechas
                {
                    voz.callar();
                }

                //e.Handled = true; //se evita que se procese la tecla en el sistema, esto por los acentos, diéresis y efes
            }
            catch (Exception ex)
            {
                MessageBox.Show("Para enviar al desarrollador. Mensaje del error: " + ex.Message);
            }
        }