PDA

Ver la versión completa : Ayuda con PUT_SCREEN



Haohmaru
20/12/2007, 17:20
Hola buenas a todos. Estoy empezando a programar un juego en Fenix y bueno poco a poco voy sacando cosas.

Ahora mismo estoy con la carga de la intro y el menu principal. Estoy cargando los graficos de fondo de la siguiente manera:

Process press()
Private cI,gPress;
Begin
cI=0;
gPress=LOAD_FPG("ryukon.fpg");

For(cI=0;cI<=60;cI++)
if(cI==60)
PUT_SCREEN(gPress,3);
cI=0;
else
UNLOAD_MAP(gPress,3);
put_Screen(gIntro,2);
end
frame;
End
End

el archivo ryukon.fpg tiene 3 graficos en su interior enumerados por defecto del 1 al 3. &#191;Que pasa? Que cuando voy a cargar el gr&#225;fico 3 de nuevo me dice: Mapa 3 no disponible en fichero 1. El mapa 1 lo cargo con anterioridad en otro load_fpg y cuando termino con el tube que decirle unload_fpg para poder usar el 3.

&#191;Cada vez que quiera usar un grafico que se encuentra en un mismo archivo con varios graficos tengo que cerrarlo? &#191;O estoy haciendo algo mal?

Saludos.

loixartx
20/12/2007, 17:32
"gIntro" es una variable global supongo.

En cuanto a "unload_map", se ejecuta antes que nada, con lo cual, cuando cI vale 60, el mapa 3 ya no est&#225; disponible.

Si lo que quieres es mostrar tres pantallazos, no te compliques, ve usando put_screen y al final, libera memoria.

Eso es lo que ma da a entender tu c&#243;digo a simple vista.

Un saludo

Haohmaru
20/12/2007, 17:35
Si es eso lo que intento. Como libero memoria? algun comando especial?

Lo de; put_Screen(gIntro,2); es un fallo mio, deber&#237;a ser (gPress,2);

Aun as&#237; cuando quiero cargar mapas de un mismo archivo unos seguidos de otros me dice siempre lo mismo, si no es con un mapa es con otro.

Una dudilla, &#191;Se pueden hacer trazas en fenix?

loixartx
20/12/2007, 17:38
unload_fpg te limpia la RAM con los mapas que se hayan cargado en memoria.

un saludo!

Drumpi
20/12/2007, 19:31
Vamos a ver: tu lo que haces es poner el grafico 2 en pantalla cada frame (deber&#237;as hacerlo solo el primero, no se va a quitar porque no lo pongas un frame, lo has dibujado sobre el fondo), hasta que pones el 3, el problema es que al hacer unload_map(gPress,3) lo borras de memoria; de memoria, no del fondo. Para borrar el fondo debes hacer clear_screen()

Haohmaru
20/12/2007, 21:06
Bueno ya ta solucionado todo gracias ;)