Hacer una pantalla de carga[solucionado]

Started by Danielo515, October 12, 2008, 11:17:56 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Danielo515

¿Por que si pongo esta línea?
[code language="bennu"]let_me_alone(); ///liquida a los encargados de mostrar las imagenes.
          texto=write(0,400,300,4,"PLEASE WAIT LOADING........");
          frame;
[/code]

El texto me aparece un segundo y luego se borra?
Lo pongo justo antes de 4 froms que consumen bastante memoria y en los que no hay ningún frame ¿por que no se mantiene este texto hasta que terminen los from y se muestre la imagen,momento en el cual es cuando se borra el texto? No lo entiendo.

Danielo515

Solucionado. Por lo visto el set_mode me liquidaba los textos;

SplinterGU

no, set_mode no liquida los textos... pone un ejemplo, completo, seguro tenes algun delete_text(0) o con alguna variable que da cero o algun delete_text(texto) ?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Danielo515

Pues entonces no se el problema, ya que al poner delete text detras del set mode hay una condición durante la cual si se queda el texto y otra en la que el texto desaparece. Si se da una condición no se da la otra, es decir, son excluyentes. Si en ninguna de las dos hay un delete text ¿por que desaparece en una si y en otra no?. Son 4 for anidados que consumen mucho y en ninguno de ellos hay un delete text, por lo que deberían verse los textos, y de hecho en uno de los casos, se ven.

Danielo515

[code language="bennu"]if(img_ancho<=800 && img_alto<=700) //Si la imagen es menor a 800 x 600
        set_mode(img_ancho,img_alto,16); //Ajusta la pantalla al ancho de la imagen
          texto=write(0,img_ancho/2,img_alto/2,4,"PLEASE WAIT LOADING........");
          frame;

          from i=0 to img_alto;
             from j=0 to img_ancho;
                aux=map_get_pixel(0,img,j,i);//detectamos el color de la imagen
                letra=valores[aux%95];               //limitamos la búsqueda del caracter a los disponibles
                map_put(0,0,letra,j*7,i*7);  //ponemos dicho mapa donde correspondo
             end //from
          end //from


       
       from i=0 to img_alto*7;
           from j=0 to img_ancho*7;
              if(map_get_pixel(0,0,j,i)<>0)
                aux=map_get_pixel(0,img,j/7,i/7);
                map_put_pixel(0,0,j,i,aux);
                end
              end
           end

           

  else
        set_mode(800,600,16); //de lo contrario establece un máximo de 800*600
        texto=write(0,400,300,4,"PLEASE WAIT LOADING........");
        graph=new_map(img_ancho,img_alto,16);
         from i=0 to img_alto;
              from j=0 to img_ancho;
                  aux=map_get_pixel(0,img,j,i);
                  aux=aux%95;
                  map_put(0,graph,valores[aux],j*7,i*7);
              end //from
         end //from

         from i=0 to img_alto*7;
           from j=0 to img_ancho*7;
              if(map_get_pixel(0,graph,j,i)<>0)
                aux=map_get_pixel(0,img,j/7,i/7);
                map_put_pixel(0,graph,j,i,aux);
                end
              end
           end

        start_scroll(0,0,graph,0,0,0);//y empieza un scroll para ver la imagen
        recorrer_imagen();
        graph=0;
  end
[/code]

Ahí está, en el caso de que el if sea verdadero el texto se escribe y mantiene durante toda la ejecución de los from, que es el único momento en el que quiero que se vean, ya que, creeme, tardan un rato. En caso de que el if sea falso, es cuaando el texto aparece y se borra al instante.
Un saludo.

gukan

Buenas.

No será el frame que tienes en el if y que no tienes en el else?

SplinterGU

claro, exacto...
si no haces FRAME, el texto no se dibuja... las cosas siempre se dibujan cuando uno hace FRAME, y en realidad cuando todos los procesos terminan de hacer FRAME... ahi se dibuja...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Danielo515

Vale, si es cierto, ese es el error de ahora, no he puesto el segundo frame. Pero antes ponía el write text fuera del if, es decir, antes, y ponía un frame a continuación y el texto aparecía y luego se borraba. Yo pensaba que el set_mode lo liquidaba, pero me dicen que no, lo revisaré.