¿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.
Solucionado. Por lo visto el set_mode me liquidaba los textos;
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) ?
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.
[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.
Buenas.
No será el frame que tienes en el if y que no tienes en el else?
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...
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é.