Hola, pienso que es un bug, la funcion BLUR si la llamamos para asignar un grafico dentro de un LOOP, devuelve siempre el grafico 1, aunque le pasemos otro id...
en el Main tenemos:
blur_letra_menu(FPG_Principal, 642, 160, 120);
que es esta:
PROCESS blur_grafico(file, grafico, x, y)
PRIVATE
intensidade = 3;
BEGIN
z = -4;
graph = grafico; //blur(file, grafico, intensidade);
say(grafico);
say(graph);
LOOP
//graph = blur(file, grafico, intensidade);
graph = blur(file, 642, intensidade); // Bug Bennu ? Pinta siempre el grafico 1 el cual no asgnamos en ningun sitio
//say(file);
//say(grafico);
FRAME (30); // Lento
END
END
quien te dijo que blur te devuelve un grafico???!!!!
blur trabaja sobre el mismo grafico que le pasas de parametro...
el bug esta en no leer la wiki o documentacion.
xDDDDDDDDDDDDDDDDDD
Y ya que estamos,en la wiki donde esta la info de esta funcion:
FILTER(INTEGER, INTEGER, POINTER)
Vale, he corregido el ejemplo, mi pregunta es, porque despues de tener intensidade = 0, que se corresponde con BLUR_NORMAL, en los siguientes frames el grafico continua siendo afectado hasta que desaparece por completo ?
(Por cierto os estoy pasando un ejemplo sencillo y cojonudo de efectos :D)
PROCESS blur_grafico(file, grafico, x, y)
PRIVATE
intensidade = 3;
BEGIN
z = -4;
graph = grafico;
blur(file, grafico, intensidade);
LOOP
intensidade--;
IF (intensidade <= 0) intensidade = 0; END
blur(file, grafico, intensidade);
say(intensidade);
FRAME (600); // Lento
END
END
y... partiendo de la base que el grafico source es el mismo que se modifica y si pones el efecto en un loop, es logico que se vaya siendo afectado hasta desaparecer...
Claro, que tonto soy, me estan afectando tantas horas delante del ordenador, estoy seriamente pensando en dejarlo xD
Y un ejemplo de FILTER donde lo puedo encontrar ?
No se puede aplicar efectos de blur a fuentes en loop tambien ? Las ttf lo permitian ? (a ver si josebita se pronuncia)
Tengo un problema/duda:
Como restauro de nuevo el grafico en memoria a su estado original despues de aplicarle el efecto blur (en un proceso que despues ya no existe), de forma a poder utilizar ese gráfico despúes en otros sitios del programa ?
(sin la solución de descargar y volver a cargar el mapa del fpg)
no necesitas descargarlo, con cargarlo, ya te basta.
Pero lo voy a tener que cargar mas veces ? No hay forma de resetear su estado ?
te lo respondo con una pregunta.
si esculpis (no confundir con escupir) una piedra con un cincel, luego de finalizar tu trabajo, podes volver a restaurar la pierda a su estado original?
porque eso es exactamente lo que haces con blur, esculpir el mapa.
Para eso, mejor que clones el mapa y le hagas el blur al clon.
Quote from: Drumpi on April 22, 2011, 05:05:39 PM
Para eso, mejor que clones el mapa y le hagas el blur al clon.
;) :D
sobraba el comentario me parece... :D
Siguiendo esa filosofia Splinter ya ni necesitamos pedirte nada mas para Bennu ;D
Y clonando el mapa, imaginate que vuelvo a poner el proceso de nuevo en el juego, tengo que estar siempre creando nuevos mapas xDDD No me queda otra que separar esos graficos en un fpg chiquito y cargar/descargar en cada modificacion de blur...
Se agradeceria un ejemplo mister Drumpi :D
tienes miles de formas de hacerlo, lo importante es que si no entendes el comportamiento del blur (y cualquier otra de la libreria effects) vas a estar preguntando estas cosas sin sentido...
tu pregunta es lo mismo que preguntar, "como hago para volver a tener el grafico original despues de hacer un UNLOAD_MAP o DRAWING_MAP+MAP o un MAP_PUT, etc?" es exactamente lo mismo, una vez que alteras el grafico original no hay forma de restaurarlo sino lo preservaste antes o si no lo volves a cargar, y no necesitas tener el original 100 mil veces guardado, con guardarlo 1 sola vez y clonarlo las que necesites es mas que suficiente.
Quote from: SplinterGU on April 22, 2011, 05:27:03 PM
Quote from: Drumpi on April 22, 2011, 05:05:39 PM
Para eso, mejor que clones el mapa y le hagas el blur al clon.
;) :D
sobraba el comentario me parece... :D
Vistas las preguntas que se hacen últimamente, creo que la aclaración de que existe una función para CLONAR mapas no sobra :P
Free, si tienes cargado el FPG, y el proceso lo usa, significa que has guardado el ID del FPG en una variable ¿Es que cargas el FPG en ese proceso? En ese caso te recomiendo que hagas la carga y descargas de gráficos, así como de sonidos y demás, en el proceso "padre", entendiendo como "padre" al proceso que controla la acción de los demás procesos. Puede ser el main, o el proceso "juego" o el proceso "jugar_nivel".
Y al igual que cargas el FPG en una variable global, puedes crear el clon del gráfico en una variable global. Recuerdo que no es necesario asignarla a un FPG de memoria, ya que los mapas creados durante la ejecución pertenecen al FPG cero, y tienen IDs superiores al 1000 (pero no se sabe cual).
Quote from: Drumpi on April 22, 2011, 10:42:48 PM
Quote from: SplinterGU on April 22, 2011, 05:27:03 PM
Quote from: Drumpi on April 22, 2011, 05:05:39 PM
Para eso, mejor que clones el mapa y le hagas el blur al clon.
;) :D
sobraba el comentario me parece... :D
Vistas las preguntas que se hacen últimamente, creo que la aclaración de que existe una función para CLONAR mapas no sobra :P
tienes razon.