process flauta ()
private
       //ant_vol_min;
       //ant_vol_max;
       //ant_select;
       //ant_enter;
       ant_r;
       ant_l;
       nota;
       nota_ant;
       nota_wav[7];
       nota_chan;
begin
     while (key(_backspace)) frame; end
     nota_wav[0]=load_wav("flauta/01-c-do1.wav");
     nota_wav[1]=load_wav("flauta/02-d-re.wav");
     nota_wav[2]=load_wav("flauta/03-e-mi.wav");
     nota_wav[3]=load_wav("flauta/04-f-fa.wav");
     nota_wav[4]=load_wav("flauta/05-g-sol.wav");
     nota_wav[5]=load_wav("flauta/06-a-la.wav");
     nota_wav[6]=load_wav("flauta/07-b-si.wav");
     nota_wav[7]=load_wav("flauta/08-c-do2.wav");
     loop
         nota=0;
         if (key(_enter)) nota+=8; end
         if (key(_space)) nota+=4; end
         if (key(_s)) nota+=2; end
         if (key(_a)) nota++; end
         
         if (  (!ant_r && key(_tab)) || ((nota_ant!=nota) && key(_tab))  )
            ant_r=true;
            //set_wav_volume(-1,128);
            nota_ant=nota;
            if (is_playing_wav(nota_chan)) stop_wav(nota_chan); end
            switch (nota)
            case 15: nota_chan=play_wav(nota_wav[0],-1); end
            case 14: nota_chan=play_wav(nota_wav[1],-1); end
            case 12: nota_chan=play_wav(nota_wav[2],-1); end
            case 8: nota_chan=play_wav(nota_wav[3],-1); end
            case 7: nota_chan=play_wav(nota_wav[4],-1); end
            case 6: nota_chan=play_wav(nota_wav[5],-1); end
            case 4: nota_chan=play_wav(nota_wav[6],-1); end
            case 0:  nota_chan=play_wav(nota_wav[7],-1); end
            end
         end
         if (!key(_tab))
            if (ant_r) ant_r=false; end
            if (is_playing_wav(nota_chan)) stop_wav(nota_chan); end
         end
         
         if (key(_backspace)) break; end
         frame;
     end
     
     if (is_playing_wav(nota_chan)) stop_wav(nota_chan); end
     for (nota=0;nota<=7;nota++)
         unload_wav(nota_wav[nota]);
     end
     estado=0;
end

//*****************************************************************************
//  MENU INICIAL
//*****************************************************************************
process flauta_flecha (x,y)
begin
     file=graficos1;
     flags=4;
     z=-600;
     signal(id,s_freeze);
     frame;
     //loop frame; end
end

process inst_flauta_imagen (x,y,file,graph,angle)
begin
     z=-30;
     signal(id,s_freeze);
     frame;
     //loop frame; end
end

process intro_flauta ()
private
       cont;
       cont2;
       hijos[8];
       //textos[7];
       ant_l;
       ant_r;
       fuentes1;
begin
     set_text_color(rgb(255,255,255));
     write(0,160,100,1,"Y : Instrucciones");
     write(0,160,140,1,"X : Tocar");
     load_pal("comic_roja.fnt");
     loop
         if (key(_z))
            delete_text(all_text);
            graficos1=load_fpg("inst_flauta.fpg");
            file=graficos1;
            hijos[0]=guitarra_flecha(0,240);
            hijos[1]=guitarra_flecha(320,240);
            while (cont<4)
                  switch (cont)
                  case 0:      //foto: como coger la consola
                       x=480;
                       y=120;
                       graph=3;
                       hijos[0].graph=0;
                       hijos[1].graph=2;
                       while (x!=160)
                             x-=5;
                             frame;
                       end
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              while (x>=-160)
                                    x-=5;
                                    frame;
                              end
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           frame;
                       end
                  end
                  case 1:      //Posicion de los dedos
                       hijos[0].graph=1;
                       hijos[1].graph=2;
                       hijos[2]=inst_flauta_imagen(100,256,graficos1,4,0);
                       hijos[3]=inst_flauta_imagen(192,256,graficos1,5,0);
                       hijos[4]=inst_flauta_imagen(256,256,graficos1,5,0);
                       hijos[5]=inst_flauta_imagen(0,155,graficos1,6,0);
                       hijos[6]=inst_flauta_imagen(0,155,graficos1,7,0);
                       hijos[7]=inst_flauta_imagen(320,155,graficos1,8,0);
                       hijos[8]=inst_flauta_imagen(320,155,graficos1,9,0);
                       cont2=0;
                       for (cont2=0;cont2<64;cont2++)
                           hijos[2].y--;
                           hijos[3].y--;
                           hijos[4].y--;
                           hijos[5].x++;
                           hijos[6].x+=2;
                           hijos[7].x-=2;
                           hijos[8].x--;
                           frame;
                       end

                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                       
                       for (cont2=0;cont2<64;cont2++)
                           hijos[2].y++;
                           hijos[3].y++;
                           hijos[4].y++;
                           hijos[5].x--;
                           hijos[6].x-=2;
                           hijos[7].x+=2;
                           hijos[8].x++;
                           frame;
                       end

                       cont2=2;
                       for (cont2=2;cont2<=8;cont2++)
                           signal(hijos[cont2],s_kill);
                       end
                  end
                  case 2:     //como tocar (notas)
                       hijos[0].graph=1;
                       hijos[1].graph=2;
                       xput(graficos1,4,40,50,-90000,100,0,0);
                       xput(graficos1,5,40,115,-90000,100,0,0);
                       xput(graficos1,5,40,165,-90000,100,0,0);
                       
                       define_region(1,80,0,240,240);
                       inst_flauta_imagen(95,25,graficos1,11,0);
                       inst_flauta_imagen(95,70,graficos1,11,0);
                       inst_flauta_imagen(95,120,graficos1,11,0);
                       inst_flauta_imagen(95,165,graficos1,11,0);
                       inst_flauta_imagen(95,215,graficos1,12,90000);
                       
                       inst_flauta_imagen(135,25,graficos1,10,0);
                       inst_flauta_imagen(135,70,graficos1,11,0);
                       inst_flauta_imagen(135,120,graficos1,11,0);
                       inst_flauta_imagen(135,165,graficos1,11,0);
                       inst_flauta_imagen(135,215,graficos1,13,90000);
                       
                       inst_flauta_imagen(175,25,graficos1,10,0);
                       inst_flauta_imagen(175,70,graficos1,10,0);
                       inst_flauta_imagen(175,120,graficos1,11,0);
                       inst_flauta_imagen(175,165,graficos1,11,0);
                       inst_flauta_imagen(175,215,graficos1,14,90000);
                       
                       inst_flauta_imagen(215,25,graficos1,10,0);
                       inst_flauta_imagen(215,70,graficos1,10,0);
                       inst_flauta_imagen(215,120,graficos1,10,0);
                       inst_flauta_imagen(215,165,graficos1,11,0);
                       inst_flauta_imagen(215,215,graficos1,15,90000);
                       
                       inst_flauta_imagen(255,25,graficos1,11,0);
                       inst_flauta_imagen(255,70,graficos1,11,0);
                       inst_flauta_imagen(255,120,graficos1,11,0);
                       inst_flauta_imagen(255,165,graficos1,10,0);
                       inst_flauta_imagen(255,215,graficos1,16,90000);
                       
                       inst_flauta_imagen(295,25,graficos1,10,0);
                       inst_flauta_imagen(295,70,graficos1,11,0);
                       inst_flauta_imagen(295,120,graficos1,11,0);
                       inst_flauta_imagen(295,165,graficos1,10,0);
                       inst_flauta_imagen(295,215,graficos1,17,90000);
                       
                       inst_flauta_imagen(335,25,graficos1,10,0);
                       inst_flauta_imagen(335,70,graficos1,10,0);
                       inst_flauta_imagen(335,120,graficos1,11,0);
                       inst_flauta_imagen(335,165,graficos1,10,0);
                       inst_flauta_imagen(335,215,graficos1,18,90000);
                       
                       inst_flauta_imagen(375,25,graficos1,10,0);
                       inst_flauta_imagen(375,70,graficos1,10,0);
                       inst_flauta_imagen(375,120,graficos1,10,0);
                       inst_flauta_imagen(375,165,graficos1,10,0);
                       inst_flauta_imagen(375,215,graficos1,19,90000);
                       
                       hijos[3]=get_id(type inst_flauta_imagen);
                       while (hijos[3]!=0)
                             hijos[3].region=1;
                             hijos[3]=get_id(type inst_flauta_imagen);
                       end
                       
                       cont2=0;
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           
                           if (key(_left) && cont2>0)
                              cont2--;
                              hijos[3]=get_id(type inst_flauta_imagen);
                              while (hijos[3]!=0)
                                    hijos[3].x++;
                                    hijos[3]=get_id(type inst_flauta_imagen);
                              end
                           end
                           if (key(_right) && cont2<70)
                              cont2++;
                              hijos[3]=get_id(type inst_flauta_imagen);
                              while (hijos[3]!=0)
                                    hijos[3].x--;
                                    hijos[3]=get_id(type inst_flauta_imagen);
                              end
                           end
                           frame;
                       end
                       hijos[3]=get_id(type inst_flauta_imagen);
                       while (hijos[3]!=0)
                             signal(hijos[3],s_kill);
                             hijos[3]=get_id(type inst_flauta_imagen);
                       end
                       clear_screen();
                  end
                  case 3:       //Boton salir, apagado pantalla e inicio.
                       fuentes1=load_fnt("comic_roja.fnt");
                       write(fuentes1,160,10,1,"Otras cosillas importantes");
                       write(0,30,50,0,"Pulsa el boton R CON LA BARBILLA para so-");
                       write(0,10,60,0,"plar y hacer sonar la flauta.");
                       write(0,30,70,0,"Para salir, pulsa el botón L.");
                       write(0,30,80,0,"Mientras se esté tocando el instrumento,");
                       write(0,10,90,0,"en pantalla no aparecerá nada, para reducir");
                       write(0,10,100,0,"cualquier efecto perjudicial para la vista, dada");
                       write(0,10,110,0,"la escasa disancia de la pantalla con los ojos");
                       write(0,10,120,0,"(para, si empiezas a notar el cansancio)");
                       //write(0,10,130,0,"cansancio)");
                       write(0,160,170,1,"Pulsa R para empezar.");
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              delete_text(all_text);
                              signal(hijos[0],s_kill);
                              signal(hijos[1],s_kill);
                              unload_fpg(graficos1);
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              delete_text(all_text);
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                  end
                  end //switch
            end   //while (cont<4)
         end      //if (key(_z))

         //empieza el instrumento
         if (key(_x) || (cont==4))
            break;
         end

         frame;
     end
     delete_text(all_text);
     estado=2;
     flauta();
end
