Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Danielo515 on October 12, 2008, 11:17:56 PM

Title: Hacer una pantalla de carga[solucionado]
Post by: Danielo515 on October 12, 2008, 11:17:56 PM
¿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.
Title: Re: Hacer una pantalla de carga[solucionado]
Post by: Danielo515 on October 12, 2008, 11:23:03 PM
Solucionado. Por lo visto el set_mode me liquidaba los textos;
Title: Re: Hacer una pantalla de carga[solucionado]
Post by: SplinterGU on October 12, 2008, 11:57:51 PM
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) ?
Title: Re: Hacer una pantalla de carga[solucionado]
Post by: Danielo515 on October 13, 2008, 05:21:32 AM
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.
Title: Re: Hacer una pantalla de carga[solucionado]
Post by: Danielo515 on October 13, 2008, 05:27:46 AM
[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.
Title: Re: Hacer una pantalla de carga[solucionado]
Post by: gukan on October 13, 2008, 09:17:10 AM
Buenas.

No será el frame que tienes en el if y que no tienes en el else?
Title: Re: Hacer una pantalla de carga[solucionado]
Post by: SplinterGU on October 13, 2008, 12:45:42 PM
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...
Title: Re: Hacer una pantalla de carga[solucionado]
Post by: Danielo515 on October 13, 2008, 01:58:12 PM
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é.