editor y creador de fpgs (8, 16, 32b) código bennu

Started by Prg, October 18, 2008, 12:13:06 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

#120
Quote from: Windgate on November 27, 2008, 01:00:17 PM
Arg, le estoy echando un vistazo al código, y tengo una pequeña consulta derivada:

Usas set_point() para trabajar con puntos de control, pero en el function_list.txt no veo esa función. La he usado en uno de mis programas y el compilador no se queja así que supongo que pertece a las DLL de mod_proc ó mod_grproc, ¿Alguien puede confirmarme si es así?

En cuanto eche un ojo a tu programa te comento, ahora he de ir a trabajar xD
je je, el tema no está nada comentado amigo, a ver que te parece el código  :D

Bueno, si tus problemas es que no encuentras las funciones en la function list aquí está mi function list: (Abajo), la función de set_point está en mod_map.dll  (Yo abro la function list y le doy a buscar, escribo la función y así ya se en qué librería está, así me evito revisar librería por librería, y cuando necesito información de alguna función busco en la ayuda del flamebird de la versión que tengo [no estoy muy seguro cuál sea ;D ]) .
Espero te sirva mi función list para encontrar las dll amigo :)



Quotebien, no se si lo hiciste por codigo el tema de borrar un grafico que ya existe en una posicion, pero bennu ya lo hace directamente cuando haces fpg_add, si hay uno en esa posicion lo borra y luego agrega el nuevo...

con respecto a la seleccion, yo no pretendia algo tan completo, pero si lo haces asi se me ocurre que tengas 2 paneles, uno de navegacion y otro de lista de archivos a cargar importar... y un boton de agregar/quitar, de izq a derecha o de derecha a izq, con esto cuando le das ok, trabaja sobre la lista que armaste agregando archivos/directorios... creo que quedaria excelente... y segun la funcion (me refiero a casos donde la seleccion sea de 1 solo archivo, por ejemplo, "save as..." o "save..." o "export...") trabajar con 1 panel de 1 simple seleccion o el de multiples con el panel lista...

no se si me explique...

gracias, ahora voy a probar el tema

no, lo de borrar no lo hice por código :)
Lo de la selección está muy buena la idea de los dos páneles, incluso ya estaba sobre eso, el problema es que el otro panel te quita la mitad del espacio para cargar imágenes y entonces me tocaría hacer lo mismo que en lo de las carpetas para navegar cuando llenan el espacio asignado, sin embargo en un día de "no hacer nada" creeme que lo voy a hacer amigo  ;) . Incluso a mí se me hace muy bueno e importante el poder quitar imágenes que ya habías pensado cargar . El único problema de esto es cúantas imágenes debo dejar para que se almacenen en un array y poderlas seleccionar para cargarlas, Es que para navegar entre los nombres me gusta la idea de arrays de strings, y pues tenemos un espacio limitado por el que hayamos escrito al declaralos. :) ¿Cuántos me recomiendan?

Quote
(me refiero a casos donde la seleccion sea de 1 solo archivo, por ejemplo, "save as..." o "save..." o "export...") trabajar con 1 panel de 1 simple seleccion o el de multiples con el panel lista...
??? Aquí no entendí

lo que pasa es que actualmente las cosas se guardan cuando estas en el fpg y le das guardar, y guardar fpg, pues sólo trabaja con uno así que no considero necesario un pánel, ¿o te refieres a poder seleccionar cuál fpg guardar desde la opción guardar como?  ???  :) si es así entonces podría considerar la opción, viéndola bien se desaprovecha mucho espacio en el panel guardar como, y podría ser utilizado por el pánel que me hablas...  :o

:) Bueno, me voy a conecte 4 un ratito que anoche me hice boooooolas con la IA, y creo que voy a tener que borrar todo de nuevo :)

A propósito, si Dcelso anda por aquí, Dcelso, ¿pudiste exportar?, pues yo no he encontrado ningún problema, busca en el directorio del fpg que habías cargado, esto lo hice para que si trabajas con varios fpgs, pues no se remplacen los png que exportas, si no al final tendremos unos chilaquiles bien coloridos (comida mexicana de tortillas con chile verde o rojo). :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

Si que va sí (el exportar digo), no me di cuenta antes o lo hice mal,

He encontrado un bug, he abierto un fpg8bits y luego lo he cerrado, ha desaparecido el botón del fpg que aparece al lado de la barra de desplazamiento pero las imágenes siguen cargadas.

Por cierto, podrías intentar usar el formato de exportación e importación de puntos de control de ¿fpg edit ? Es por guardar compatibilidad. El ejemplo para la imagen 10
010.cpt

CTRL-PTS
1
15 11

Es un archivo en texto plano, el truco es usar "gets y split" y puts para guardar línea a línea.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

QuoteSi que va sí (el exportar digo), no me di cuenta antes o lo hice mal,
¿entonces sí funciona vd?

QuoteHe encontrado un bug, he abierto un fpg8bits y luego lo he cerrado, ha desaparecido el botón del fpg que aparece al lado de la barra de desplazamiento pero las imágenes siguen cargadas.
Ya veo, como ahora las imágenes se presentan almacendads en un array, pues tengo que eliminar los datos del array cuando cierras el fpg.
Gracias por decírmelo, pronto lo corregiré.  :)

QuotePor cierto, podrías intentar usar el formato de exportación e importación de puntos de control de ¿fpg edit ? Es por guardar compatibilidad. El ejemplo para la imagen 10
010.cpt
Code:

CTRL-PTS
1
15 11

Es un archivo en texto plano, el truco es usar "gets y split" y puts para guardar línea a línea.

Claro, sólamente estudiaré un poco el formato, ¿No hay problemas entonces si utilizo la misma extención que el fpg edit? (me inventé mi propia extención  ;) ) para poderlos cargar :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

yo diría que sí puedes usar dicho formato, el fpgedit es opensource, no te va a decir nada por usarlo, lo ideal sería que alguien le diera soporte de 32 bits para tener otra alternativa mas en windows :D

por otro lado el exportar de tu aplicación tiene la limitación de bennu, solo exporta pngs de 32 bits. En todas las pruebas que hice no conseguír exportarlo en 16 ni 8 bits. Aunque los fuentes fpg sean de 8 o 16, los exporta en pngs de 32 bits, no probé el formato pcx a lo mejor ese va.
Quizas en la documentación que está realizando SplinterGu sobre colores nos explique si es posible guardar en otras densidades.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

es verdad, esperemos que sí :) .

Pero puedes tomar el gráfico y guardarlo en paint como png 8b o 16 b :) claro que no es lo ideal, pero algo es algo :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

ya dije que van a existir funciones de save y load con un parametro extra que indique la profundidad de color, pero no de momento... pronto...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

hola, al fin he corregido el problema de los directorios que hacía que algunas veces se repitiera una carpeta. era tan sencillo, pero no lo sabía, hasta ahora, con lo que he aprendido recientemente lo encontré ¡¡¡EUREKA!!! ahora me dedicaré a hacer los páneles para seleccionar los gráficos y demás. me gustaría escuchar sus sugenrencias antes de comenzar a hacer el código, prefiero tener todo como será; en lugar de hacer decenas de correcciones. que las correcciones de código sean las mínimas. escucho sus sugerencias sobre forma, tipo etc.

estaba pensando en que fueran páneles que al acercar el ratón se desplegaran,  y que mostraran los gráficos (en el caso de la carga de gráficos) que vas agregando para cargar, y que te adviertan si la posición ya está ocupada, que te permitan agragar una posición individualmente al gráfico (más uso de arrays, cómo me recomiendan definirlos, para aprovechar bien la memoria y que te permitan cargar una buena cantidad de gráficos) y que tengan flechas para moverte.

permitir que se puedan cargar más gráficos, y selección de varios con shift.

en el caso de los páneles para guardar y cargar fpgs, pues supongo que una lista de éstos, y ya seleccionas los que quieres guardar, no lo se. no tengo contemplado un guardar todo, pues aunque tenga un mensaje que diga ¿ESTAS SEGURO? se que muchas veces pensamos estar seguros, y si hubiera 3 o 4 mensajes aún así le daríamso que sí, para luego lamentarnos por haber olvidado que habíamos modificado uno momentaneamente, que ya guardamos, no tenemos los gráficos originales y no hay copias de seguridad  ;D

estaba pensando en agregar generador de efectos (ondulaciones por ejemplo), sin embargo no se si sea útil  y apropiado, además no se me ocurren muchos efectos. claro, esto sería para después cuando sea un poco mejor el proyecto, mínimo que no te saque  :D .

quiero acomodar la barra de desplazamiento, si alguien tiene idea de el código, o algo ya hecho, y me lo puede facilitar, se lo agradecería.

gracias por todo. y saludos a todos :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg

ya contamos con compatibilidad para los puntos de control que exporta el FPG EDIT 2005 en formato cpt. ahora la estructura es la que utiliza nuestro fpg editor. exportamos e importamos puntos de control de esta forma.

(aprendí a utilizar fputs y fgets :) )
eh dividido en módulos todo el código (Gracias amigo windgate por enseñarme cómo).

como no hay comentarios sobre los páneles, comenzaré a armarlos a mi forma :) .

Nos vemos :) .
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

Muy buen trabajo...
Para el tema de los paneles, pone propuestas... y en base a eso se puede opinar...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

ok, entonces comenzaré a armarlo en mi cuadernito propuestas :) .
ya tengo un poco de código, así que lo inluiré para ver qué se puede cambiar. nos vemos luego. :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg

je je je. bueno aquí están mis propuestas. ya inicié a hacer los gráficos, pero necesito sugerencias en el código.

hablaré del pánel de carga de gráficos, los demás no por el momento.

1 dividiré el pánel, en lugar de que presente 2 columnas sólo presentará 1 pero tendrá botones y barra de desplazamiento (trabajando en la barra, se me dificulta un poco, abajo mostraré un poco mi código para ver sugerencias)

en la primera columna aparecerán los gráficos como siempre, en la segunda los que se han agregada al array para ser cargados.
en la segunda habrá dos botones "<<" ">>" para que si seleccionamos varios gráficos (shift + click izq) podamos agregarlos todos al array presionando ">>" y para que si seleccionamos una posición en el array y presionamos "<<" se elimine ese gráfico del array de carga.

seguiremos agregando elementos al array de carga hacindo click en ellos, la diferencia vendrá al presionar shift, pues se creará una selección.

estoy pensando en agregar un botón que cargue toda la carpeta seleccionada.

en el segundo pánel habrá: primero el nombre del archivo que se va a cargar. luego la posición, la cual seleccionaremos escribiendo en ella o dejando la que ya aparece, seleccionada "de forma inteligente"  ;) . y también habrá algo que me diga si está ocupada o desocupada.
para esto de si está ocupada o desocupada hay varias opciones:
-un proceso con gráfico de palomita y cruz
-completar cadena con una "x" y un "/"
-completar cadena con un 0 y un 1

¿qué opinan?


* estoy pensando en agregar la opción de selección de varios gráficos en el entorno principal para poder copiar, borrar exportar,  y trabajar (si la función lo permite), con varios a la vez.

*agregar la previsualización de gráfico a cargar en un espacio inmutable (abajo del pánel de gráficos agregados al array de carga).

*crear puntos de restauración crando fpgs temporales (todavía me la estoy pensando... mmmm... ¿hay alguna función para saber si queremos salir, por ejemplo cuando presionamos la cruz, esto es para eliminar los archivos temporales antes de salir, esto tiene la ventaja de que si se apaga la pc los podemos recuperar, y si se eliminan al principio de sesión, no hay forma de saber si sa apagó?)

*guardar los puntos de control de los gráficos en temporales binarios, esto para no tener 999*2 variables para contener el punto 0 de los gráficos. fseek(fichero, posición*,desde) * este parámetro ¿es 0 para la posición primera y 1 para la siguiente o cómo?


[code language="bennu"]
//proceso de la barra de desplazamiento
process barra();
private

        diferencia;
begin

     
        x=771; y =tot/2.44+163;
       
        loop
        graph=new_map(20,404/((numero_graficos[ficheros[nuevo_file]])/9+1),32);   //creamos el mapa de acuerdo al número de gráficos del fichero actual
        map_clear(0,graph,0ff666666h);        //le damos el aspecto general, pienso hacerlo más bonito, esto es momentáneo
             
                        y =(tot/4.04)+358;                    //tot es el gráfico en el que vamos para visualizar (aquí hay algunas cosas que corregir para adaptar a lo que tengo en mi cuaderno  :-[ )
                        diferencia=mouse.y-diferencia;
                      if (mouse.x>x-10 & mouse.x<x+10 & mouse.y>163 & mouse.y<556 & mouse.left & tot>0 & tot<999)       //si está dentro del campo de la barra y si se presiona el ratón
                      if (collision (type mouse))              //si colisiona la barra con el ratón el movimiento es respecto al movimiento del ratón y no absoluto
                         y+=diferencia;
                      else
                       y =mouse.y;                                //si no colisiona con el ratón, muévelo hacia el ratón
                      end
                        tot=(y-358)*4.04;   end               //a partir de la y crea el movimiento de los gráficos (modifica tot)
                                 
                        diferencia=mouse.y;
                       
                        frame;
                        unload_map(0,graph);                  //después de presentar el gráfico lo borra ¿es necesario, o el nuevo gráfico generado en el bucle se coloca en la misma posición que éste y por lo tanto éste es borrado?
                        end
                         end[/code]

espero con ansias sus sugerencias, no sean flojos, unas líneas que me escriban me suben el ánimo y me permiten hacer mejor el proyecto.

:)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

Lo de los botones de agregar y quitar permitiendo seleccionar varios me parece buena idea.
Tenes algun draft grafico del panel que pensas poner? dicen que una imagen vale mas que mil palabras...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

:)
me he hecho rapidito uno, sería algo así:



está hecho en un editor de gráficos, no es captura, pero se supone que será algo parecido.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

esos 001, son dialogos editables?
se ve practico, me parece bien.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

darío

Prg, una pregunta, la última versión que hay descargable es de noviembre. Quería bajármelo para darte mi opinión y proponer mejoras pero no se si habrás cambiado mucho el proyecto desde entonces ¿Tu que dices?

Ánimo con ello. Sería genial tener un editor que funcione en todo lugar donde Bennu funcione :).
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats