Este post contiene información relevante sobre el desarrollo de Smart Fpg Editor.
ACTUALIZADO 2011.09.04Última version liberada: 0.4.5
(http://dariocutillas.files.wordpress.com/2011/09/sshot6_s.png)
NOTA: Como siempre, se recomienda desinstalar cualquier versión anterior antes de instalar una nueva versión.
Versión 0.4.5 (liberada el 2011.09.03)Funcionalidad nueva
- Drag&Drop desde el editor hasta el explorador de windows. Si se mantiene pulsada la tecla "Ctrl" se generan archivos PNG, si no, se generan archivos MAP
- Ahora se puede llamar al programa pasándole como argumentos el nombre de uno o más archivos FPG
- Menus contextuales en la ventana principal
- Cambio rápido del nombre de un gráfico a través del menu contextual
- Ahora se pueden exportar las paletas de los FPGs de 8bpps
- En el visor/editor de gráficos se pueden visualizar los puntos de control sin necesidad de entrar en modo edición
- Funcionalidad "siguiente/anterior punto de control sin definir" en el visor/editor de gráficos, para moverse por los puntos de control que no se hayan definido todavía
Errores corregidos
- En algunas situaciones, los gráficos de un FPG podían aparecer desordenados.
- Cuando se añadía un gráfico desde un fichero MAP se mostraban caracteres erróneos en la descripción cuando esta contenía "ñ", "à", etc.
- Al añadir un gráfico inmediatamente después de haber eliminado uno se generaba un error del programa que hacía que dejase de funcionar.
Cambios en la interfaz
- Se han reemplazado una serie de iconos que no eran totalmente libres por iconos libres
Mejoras de usabilidad
- El nombre del fichero FPG se muestra en la barra de título
- El botón "Aceptar" de "Añadir Gráfico" es el botón por defecto
- En el visor/editor de gŕaficos las líneas que indican la posición del ratón no se muestran ahora cuando se está fuera de la región del gráfico
- "Untitled" se usa ahora como el nombre por defecto a la hora de guardar un FPG nuevo
Versión 0.4.0 (liberada el 2011.05.07)Funcionalidad nueva
- Los ficheros FPG pueden arrastrarse a la ventana principal de SPFGE para abrirlos
- Drag&drop para intercambiar gráficos con otros programas
- Drag&drop entre ventanas de SFPGE
- Operaciones de copiado, corte y pegado entre ventanas de SFPGE así como con otros programas.
- Soporte mejorado para la ruedecilla del ratón en el editor de FPGs: Ctrl + Rueda --> control del tamaño de los thumbs
- Soporte mejorado para la ruedecilla del ratón en el editor de MAPs: Ctl + Rueda -> Zoom; Mayus + Rueda --> Scroll horizontal
- Se pueden añadir gráficos al FPG arrastrando desde el explorador.
- Las selecciones guardan el orden en que se han ido seleccionando los gráficos de modo que al deseleccionar de uno en uno (con Ctrl) se reestablece el foco sobre el último gráfico seleccionado con anterioridad.
Errores corregidos
- Cuando se creaba un fpg de 8 bits, si la paleta que seleccionábamos era de otro archivo FPG, se producía un error que hacía caer el programa
- Si se hacía una selección múltiple y el último gráfico seleccionado se deseleccionaba con Ctrl + Click, el gráfico retenía el "foco", lo cual no tenía sentido
Cambios en la interfaz de usuario
- Cuando no hay un FPG cargado, se informa en la ventana para distinguir de cuando tenemos un fpg vacío
- Se ha mejorado la apariencia del editor de FPGs (es más bonito ahora)
- Se ha quitado el botón "Duplicar FPG" (era una estrella). Esta opción se encuentra ahora en el menu desplegable "Nuevo"
Mejoras en la usabilidad
- Seleccionar y deseleccionar funciona ahora de un modo mucho más coherente (era necesario para poder tener un drag&drop decente)
- Cuando hay un fpg abierto, al abrir un fpg se abrirá una nueva ventana del editor
Versión 0.3.0
- Añadido soporte para exportar gráficos a formato PNG
Con esto concluyo la lista de cosas que quería tener listas para cerrar la serie 0.2.x.
Versión 0.2.8Esta versión incluye bug-fixes menores (pero importantes) comparado con la versión 0.2.0 y añade algunas características extra:
Errores corregidos más importantes
- Puntos de control no consecutivos no eran correctamente guardados al guardar el FPG. (Nótese: el problema no ocurría si los puntos de control eran todos consecutivos)
- Redimensionar la ventana del editor gráfico al mínimo tamaño originaba un error
Características añadidas
- Capacidad para exportar gráficos a formato MAP.
- Activadas las opciones Usar puntos de control propios y Usar puntos de control del gráfico a reemplazar en el cuadro de diálogo añadir gráfico.
SMART FPG EDITORSmart Fpg Editor es, como el nombre sugiere, un editor de FPGs. Se está desarrollando en Visual Basic 6.
El
objetivo principal del projecto es crear un editor FPG tan intuitivo y sencillo de usar como sea posible, lo que yo llamo
painless FPG editor. Smart Fpg Editor se distribuye bajo licencia GNU GPL 3.
+
This same post in English (http://forum.bennugd.org/index.php?topic=399.msg4747#msg4747)+ Página del proyecto (código fuente y archivos binarios): http://code.google.com/p/smartfpgeditor/
+ Información de donde bajar el programa y los requerimientos básicos se puede encontrar más abajo en este post.
+ (Sin actualizar) Algo más de información puede encontrarse en mi blog (http://dariocutillas.wordpress.com/)
LISTA DE CARACTERÍSTICAS Y CAPTURAS DE PANTALLALa lista de características y algunas capturas pueden encontrarse en la página del proyecto (http://code.google.com/p/smartfpgeditor/).
DESCARGA E INSTALACIÓNPaquetes disponibles para descarga:Nota: Si estás actualizando de una nueva versión, se recomienda desinstalar previamente la versión anterior.
- Installer: Destinado para el usuario final general. RECOMENDADO
- Binary ZIP Package: Destinado para aquellos que por algún motivo no deseen usar el instalador. Se recomienda leer el archivo "readme-binary-dist.txt" incluido con el paquete
- Sources: Código fuente de Smart Fpg Editor. Puedes encontrar una explicación de cómo compilarlos en el Wiki de la página del proyecto
IMPORTANTE: Para instalar el programa, así como registrar manualmente los componentes COM (si usas el Binary Zip Package)
debes tener permisos de administrador.
La versión disponible está etiquetada como
Unstable (inestable). Esto no significa que el programa vaya a fallar todo el rato, simplemente recalca el hecho de que necesita ser probado más a fondo. Agradezco desde ya el tiempo que te tomes en probar y reportar cualquier bug que encuentres :).
El programa he podido ejecutarlo sin problemas en Windows Xp y Windows 7, pero imagino que debería funcionar bien en otros sistemas Windows (si alguien puede reportar algo al respecto estaré agradecido).
Espero que os guste,
Darío (danko)
Felicitaciones, 1 karma!
Muchas gracias!
Está estupendo!
Lástima de portabilidad...¿has probado de mirarte Gambas, KBasic o incluso Mono? Aunque si dices que has usado ActiveX lo veo chungo...
De todas maneras, felicidades.
Tiene muy buena pinta, ¡felicidades!.
Eso sí, penita que sólo esté para windows... Aunque es útil de todas formas.
Buenas, gracias por los comentarios.
El tema de la portabilidad, ya había pensado en eso. ..
Comento primero un poquillo de historia de como nació esto: ¿por qué en VB6? (Sí, yo también lo odio un poco jeje), esto en realidad puede importar bien poco a la mayoría de vosotros, así que saltar al final si queréis saber si se portará o no xD...
Si está hecho en visual basic es porque en realidad el proyecto nació por un intento de separar ciertas partes de flamebird, en concreto la parte que trabaja con los formatos de archivos de fenix/bennu. Así cree una librería llamada bennulib.dll, que en principio estaba destinada a ser usada en FB. Esta librería, se instala con la aplicación pero se puede enlazar desde cualquier aplicación que soporte librerías activeX, lo que da acceso a una serie de clases y funciones para cargar, crear, manipular y guardar FPGs, MAPs, y paletas.
Más tarde, pensé que sería interesante también separar el visor de fpgs de FB, porque hasta entonces se usaba un control de cuadrícula sacado de vbAccelerator, pero esto resultaba particularme engorroso. Así pues decidí crear mi propio OCX "visor de FPGs", de este modo se podría reutilizar fácilmente en otros proyectos windows. Finalmente decidí proceder de igual forma para tener un "visor de MAPs" y un "visor de paletas". El resultado es SmartBennuCtls.ocx, que incluye los citados visores y que también es usado por la Smart Fpg Editor, pero es posible enlazar desde cualquier aplicación que soporte librerías activeX.
Resumiendo, que los dos componentes activeX fundamentales de la aplicación están también escritos por mí (publicaré el código fuente bajo la misma licencia tan pronto me sea posible).
Después de haber hecho esto, necesitaba crear una pequeña aplicación para ir haciendo pruebas con ambos componentes así que se me ocurrió crear este editor de FPGs, con la intención principal de ser muy fácil y cómodo de usar (en FPGEdit, de los pocos editores finalizados que han salido a la luz, echaba en falta más comodidad a la hora de trabajar y además se me hacía necesario tener soporte para 32 bpp)
El resto de ActiveX que usa la aplicación se debe a las carencias intrínsecas de Visual Basic y no son más que un control hacer las Toolbar ya que el proporcionado por los MsCommonCtls (el que suelen usar las aplicaciones basadas en VB) no satisfacía mis necesidades, un control Image List (misma razón), un control para hacer menús (ya que los menús que se pueden hacer con VB6.0 son muy pobres) y una dll (SSubTmr.dll) que es usada por los controles que uso para subclasificar.
Luego, los otros dos requerimientos más son la zlib.dll y FreeImage.dll, los cuales no representan problemas a la hora de portar.
En fin, respondiendo a la intrínseca pregunta de si se puede portar: Bueno, está claro que no puedo coger el código fuente y compilarlo en otro compilador multisismea sin más, sin embargo he de decir que la parte más difícil del proyecto está siendo diseñar las cosas de manera coherente y pensar en facilitar la interacción con el usuario. Estas características son independientes del lenguaje y por tanto sí, se puede portar. La siguiente pregunta sería si tengo intención de portarlo, bueno, en principio sí, pero sólo una vez alcance los objetivos marcados para el programa.
En cuanto al lenguaje, conozco los que mencionas osk. A excepción de KBasic. Sin embargo, de portar el programa optaría lo más probablemente por Java, ya que he trabajado con él e incluso tengo bastante código disponible que me puede servir (hace tiempo empecé a desarrollar una librería llamada fenixlib con la misma intención que la bennulib que he comentado más arriba). También estoy familiarizado en cierto modo con las librerías para crear la UI en java, y puesto que Smart Fpg Editor no tiene una interfaz muy complicada, no me debería ser muy difícil de llevar a cabo. Lo más engorroso es portar el código de los "visores" (SmartBennuCtl.ocx) pero en realidad debería ser fácil teniendo ya un código base.
Buff, como me he explayado... Todo para acabar diciendo que una vez alcance mis objetivos propuestos sí, tengo intención de portarlo a otro lenguaje que sea multiplataforma.
Un saludo,
Darío
En linux no funciona, falta incluir la MSVBVM60.DLL y quizas alguna otra mas... no se... pero seria bueno poder hacerlo funcionar en linux...
Creo que puedo decirte exactamente las dependencias. No se si acabará funcionando pero podemos intentarlo.
La dll que comentas es parte de los runtime de visual basic. He subido un zip con los runtimes a: http://www.dariocutillas.es/sfpge/required/vb6runtime.zip
Otro problema que probablemente tendrás son las librerías GDI+, que no se si han sido implementadas en wine (supongo que es lo que estás usando). Tengo un paquete redistribuible por algún lado, si te lo pide dimeló e intento subirlo.
Si no, como ya había previsto esta situación, el módulo de dibujo lo tengo codificado en dos versiones, una que utiliza GDI+ y otra que utiliza GDI y puedo compilarlo con ella. El problema es que con GDI todavía no he implementado dibujo con AlphaBlend por lo que los mapas de 32bpp con transparencias "no se verán bonitos" y parecerá que trabajamos a 16bpp (aunque sí que se guardarán bien).
También necesitas tener una versión actualizada de la comct32.dll, teno un paquete redistribuible, pero es un instalador (supongo que lo podrás ejecutar con wine, también). Lo he subido a: http://www.dariocutillas.es/sfpge/required/50comupd.exe
De todos modos, esto viene con IE versión 5 o superior, así que supongo que puedes pillar la comct32 de tu sistema windows.
Gracias por probarlo.
Darío (danko)
pedir no me pide ninguna mas, pero no arranca... quizas alguna que cargues vos por codigo... no se...
Bueno, realmente no tengo idea de cómo funciona wine a la hora de ejecutar este tipo de aplicaciones. Es una de las cosas malas del VB6, las malditas dependencias... Tampoco se como trata el tema del ActiveX, puesto que en windows necesitan ser registrados (lo que se supone que hace el instalador).
Puedo probar a hacer que Smart FPG editor registre las dlls y ocx en el arranque, tal cual hace FB para ver si así funciona. Se que alguien consiguió ejecutar FB en Linux con wine, aunque con ciertas cosas deshabilitadas que no funcionaban (creo que una de ellas era el control de edición de textos).
Me ayudaría tener un ordenador con Linux para hacer las pruebas, pero en este momento no dispongo de el. Ya veré lo que puedo hacer.
De todos modos, si la portabilidad se hace tan importante quizá sí deba empezar a planear el cambio a otro lenguaje...
Gracias por intentarlo.
Darío (danko)
Pues a mí sí que me va con el último wine (1.1.12). El truco está en usar winetricks (http://wiki.winehq.org/winetricks) y darle a instalar todo los que suene a Visual Basic 6 y ActiveX.
Luego he instalado el Smart FPG Editor y sin problemas :)
Genial! no sabía de la existencia de eso! :)
:) Descargando y probando
caramba, yo tengo el 1.1.11, y el apt-update+upgrade no me dice que hay version nueva...
Uso los repositorios que pone en winehq.org (no los oficiales de ubuntu).
yo tambien... uso los de lamaresh, cual usas vos?
ahi le estoy dando al winetricks, le di a todo a ver que sale...
ya que estamos hablando de wine, que bien que anda el frets of fire de windows en linux, el nativo de linux es un asco, se come toda la memoria, tarda sus buenos minutos en arrancar el primer tema y en medio del juego tambien se traba, no le da la cpu o la memoria... pero la version windows con wine va de maravillas... misterios de la vida...
Uso los que vienen en http://winehq.org/download/deb. Suelen actualizar los binarios cosa de un día después de que se saquen las versiones oficiales en código en la página.
Lo del frets on fire.... ni idea oiga, no lo he probado. Sí que es cierto que el wine va cada día mejor, suerte con el smart fpg editor :)
bien, un fracaso, segui ese faq e hice los apt correspondientes, pero no actualiza nada... demas esta decir que la distro lenny tienen los archivos de .list, pero no tienen luego la dist correspondiente...
lindo el winetricks... ademas de no instalar la mayoria de las cosas, acaba de arruinarme la mayoria de los productos windows que tenia instalados...
Se me olvidó decir que lo probé sobre una instalación limpia de wine (sorry).
:P
habia interpretado que necesitaste correr el winetricks...
bueno ahora tengo una instalacion de wine limpia...
dario, podrias poner una version en zip sin instalador? asi puedo controlar que cosas se instalan... gracias...
Buah, estaba ayer preparando para subir el zip a las 5 de la mañana y se me apagó el portátil por sobrecalentamiento...
Antes de
He encontrado una cosa que empaqueta los activex en el ejecutable de modo que no se necesita tenerlos ni registrarlos ni nada. Estoy haciendo pruebas y parece funcionar bastante bien. De funcionar, empaquetaría las versiones binarias con esto ya que elimina bastantes quebraderos de cabeza, y no solo lo digo por la compatibilidad con wine.
Los resultados son sorprendentes, un análisis de las dependencias de mi ejecutable inicial me decía que necesitaba:
- BENNULIB.DLL
- CNEWMENU6.DLL
- COMCTL32.DLL
- COMDLG32.DLL
- FREEIMAGE.DLL
- GDI32.DLL
- KERNEL32.DLL
- MSIMG32.DLL
- MSVBVM60.DLL
- OLEAUT32.DLL
- SMARTBENNUCTLS.OCX
- USER32.DLL
- UXTHEME.DLL
- VB5!6&VB6ES.DLL
- VBA6.DLL
- VBALIML6.OCX
- VBALTBAR6.OCX
Mientras que con el nuevo ejecutable solo necesito:
- ADVAPI32.DLL
- GDI32.DLL
- KERNEL32.DLL
- OLE32.DLL
- OLEAUT32.DLL
- USER32.DLL
No obstante tengo que hacer alguna prueba más, ya que aunque todo se empaquete en el ejecutable, no se que ocurre con las dependencias de mis propios ocx y dlls, por ejemplo, el SmartBennuCtls.ocx depende de bennulib.dll y bennulib.dll depende de otras dlls como zlibvb.dll.
Pues lo dicho, voy a hacer algunas pruebas en otros ordenadores y luego subo las cosas.
Darío
Pues tiene buena pinta, ánimo.
En cuanto a lo del winetricks: empecé con una instalación limpia (el directorio .wine estaba borrado). Le instalé, con el winetricks, el vb6redistributable, algo que hablaba de directx, algunas fuentes, el gdiplus, le hice que emulara windows XP en lugar de windows 2k y creo que eso es todo. Siento que se te estropearan las instalaciones de otras cosas. Para evitar eso, puedes usar la variable WINEPREFIX="/home/user/.wine_nuevo_o_lo_que_sea", que especifica si quieres usar otro wine limpio en otro directorio sin tocar el anterior.
animo dario con eso...
josebita, si si, se lo del WINEPREFIX, pero bueno, soy kamikase... tambien se lo del borrar la carpeta .wine, bueno, de hecho hice eso para que todo me vuelva a la normalidad, lo bueno es que no tuve que reinstalar nada, solo copie las carpetas con las aplicaciones, configurar alguna que otra nuevamente y todo salio funcionando... me queda probar el sfe, pero bueno, esperare a la nueva version de dario.
Gracias
Buenas, estoy preparando la nueva release, en breve la tendré subida (pero quiero hacerlo bien y subir código fuente y binarios e indicar las pequeñas modificaciones que hice).
Respecto a lo de empaquetar todo... tengo malas noticias: no funciona en otros ordenadores. El problema creo que viene de la propia dependencia de mi OCX en la bennulib.dll.
Además, a mi lo que me interesaría sería empaquetar ciertos componentes y otros no, ya que busco modularidad tanto en la bennulib.dll como en el SmartBennuCtls.ocx de modo que puedo actualizar dichos componentes sin tener que redistribuir el ejecutable de la aplicación principal. Esto no lo permite.
Es decir, lo que yo querría empaquetar son los componentes de "terceras partes" y que no forman parte de los runtime de visual basic, es decir: vbalIml6.ocx, vbalTbar6.ocx, cNewMenu6.dll y SSubTmr6.dll. Estos archivos son los que en la página web del proyecto se encuentran en el paquete "third-party-components"
De todos modos, el único problema con los componentes de 3as partes que uso es si alguien modificara su código fuente (que está disponible en vbAccelerator), modificase las clases que expone el componente, lo compilase y generase un nuevo componente sin cambiar su CLSID, algo bastante improbable... Además, en la documentación de los componentes vbAccelerator hacen incampié en este hecho (que si cambias el código debes cambiar el nombre al componente y compilarlo de tal modo que sea un componente distinto).
Ahora que lo pienso, yo mismo podría compilar el componente con otro CSLID, o incluso juntar los componentes en un solo componente, de modo que se reducen las dependencias necesarias y se evita el problema de que alguien genere una versión de los componentes sin compatibilidad.
Resumiendo: Que no hay versión sin dependencias, pero al menos he preparado una versión "ZIP" con un par de bats que hacen el registro y el desregistro de los componentes necesarios.
En fin, ya se por qué a este problema se le conoce como "DLL Hell"...
Bueno, lo dicho, en un rato subo esto.
Darío
Ya he actualizado... de hecho veo que alguien se la ha descargado mientras posteaba. He puesto un paquete de binarios sin instalador.
Leyendo lo del Winetricks puedo indicar más o menos que podría ser que necesitases:
SEGURO NECESARIAS
comctl32 MS common controls 5.80
comctl32.ocx MS comctl32.ocx and mscomctl.ocx, comctl32 wrappers for VB6
gdiplus MS gdiplus.dll (from powerpoint viewer)
vb6run MS Visual Basic 6 runtime
PODRÍA SER QUE SE NECESITEN
corefonts MS Arial, Courier, Times fonts
vb5run MS Visual Basic 5 runtime
fontfix Fix bad fonts which cause crash in some apps (e.g. .net).
native_oleaut32 Override oleaut32
En fin, espero que funcione :)
Darío (danko)
comctl32 no instala (fallo crc o algo asi)... si funciona la comctl32.ocx... los demas paquetes instalan todos... cuando pongo el native_oleaut32 y arranco el editor dice que la oleaout32 esta fuera de fecha y no funciona...
no hay forma...
quizas es alguna de las dlls que armaste, no se, podriamos ir probando de a poco... pero deberiamos hacerlo por chat, o por otro medio, para no llenar de pruebas tu site en google code...
Ok, hace tiempo que no me conecto al messenger. Pero podemos intentarlo. De todos modos no entiendo por qué a josebita le funciona.
A ver si me conecto en un momento que estés y hablamos.
Solucionado, la solucion esta en hacer un regsrv32 de cada uno de los ocx y dlls que tenes en la carpeta "3-party" y "modules"...
Tambien incluir la MSVBVM60.DLL.
Esas 2 cosas hacen que funcione en linux...
añado que es necesario para crear los fpg la "gdiplus", asi que en linux es necesario agregar ese paquete.
estaria bueno que al hacer doble click sobre un grafico lo muestre en otra ventana en su tamaño real.
Claro, es que faltan todavía cosas básicas por añadir. Eso es el "visor/editor" de mapas.
Ahora estoy trabajando en el editor de puntos de control... que no será uno cualquiera... Cuando lo tenga más avanzado colgaré un video o unas imágenes.
De todos modos, estaré ausente estos 4 días por un viaje que tengo hacer. Pero os mantendré informados de las novedades.
gracias.
Hola,
He subido una nueva versión de Smart Fpg Editor (0.2.0).
Incluye, entre otras cosas visor de gráficos, editor de puntos de control visual, editor de puntos de control avanzado, se soportan numerosos formatos gráficos, se pueden usar como paletas para FPGs de 8bpp archivos gif y png (de 8bpp), se pueden cargar fuentes de DIV como FPGs, se da soporte completo a la conversión de color cuando se agregan gráficos al FPG, se puede eliminar la transparencia de los gráficos que se añaden a los fpgs de 16 y 32 bits, y otras tantas cosas.
A mi juicio, es bastante usable si se puede prescindir de exportar gráficos (extraer gráficos del FPG), que todavía no ha sido implementado.
Podéis descargarlo de la página del proyecto (http://code.google.com/p/smartfpgeditor/).
Agradezco cualquier tipo de comentarios y en especial agradezco que lo probéis y me digáis si funciona o no, ya que cuento con poquitos ordenadores donde probarlo.
Espero os resulte útil.
Darío
está increible, el aspecto es buenísimo... felicidades, un karma para ti amigo, está muy padre :)
Muchas gracias :)
k up!
otro karma por el esfuerzo (que menos)
Gracias, aunque se que soys muchos los usuarios no-windows por aquí y quizá debiera replantearme reescribirlo en alguna otra cosa...
:)
Cielos, me salté este hilo... ¿Debo entender que Smart Fpg Editor sustituye a FPG Edit 2009? ¿Algún resumen breve de diferencias/pros/contras?
Son programas diferentes. Prueba y quédate con el que más te guste.
Hola,
Este hilo ha estado un poco muerto por un tiempo... No obstante, he decidido subir una nueva versión del editor que añade la funcionalidad de exportar a archivos MAP y corrige algunos errores (siendo el más importante uno que podía originar pérdida de información de los puntos de controls de mapas que contengan puntos de control no consecutivos).
Toda la información relevante la tenéis en el primer post (http://forum.bennugd.org/index.php?topic=398.msg4746#msg4746), que también está disponible en Inglés (English) (http://forum.bennugd.org/index.php?topic=399.0)
Un saludo,
Darío
P.D.: Si alguien usa el programa cuando trabaja con Bennu me gustaría saberlo... anima saberlo :)
muchas gracias Dario, 1 karma para ti.
Muy bueno este editor Darío! Karma++! Ojalá lo puedas seguir actualizando, ánimo!
Buenisiiiiimo, ya mismo actualizo!
Si pensas seguir actualizando te podría armar una listita con cosas que fui notando que serian practicas... pero asi como esta, ya esta excelente, gracias! :)
Yo tengo muchas ganas de usarlo, hasta ahora mi unico impedimento fue ejecutarlo en ubuntu :P me esta pidiendo algunas dll que no tengo, supongo que seran los runtime de vb. no?
Buenas,
gracias por los comments.
gecko:
Lo cierto es que no tengo mucho tiempo y por eso tampoco quiero meterle demasiadas cosas que puedan "inestabilizarlo", pero sí que me gustaría acabar algunas cositas con lo que creo que se quedaría como el editor de FPGs que me gustaría tener a mí... Puede que el "drag & drop" nunca llegue a ver la luz, pero creo que con algunos añadidos y algo más podría quedar bastante completo.
No obstante, pásame la lista, que nunca se sabe... :)
JaViS:
Creo recordar que a Josebita le funcionó haciendo uso de winetricks (si lees los post anteriores explica qué es lo que instaló el). No obstante, yo no conseguí hacer que me funcionase... quiero volverlo a probar a ver...
podrias intentar compilarlo con gambas
http://es.wikipedia.org/wiki/Gambas
Gracias DCelso, aunque lo cierto es que ya estudié muchas opciones de cara a portarlo a algo, incluido a Gambas, desgraciadamente no era muy viable (no era cambiar cuatro cosas y recompilar) y merecía más la pena reescribirlo en algún otro lenguaje... empecé a hacerlo en Java, pero lo dejé a medias y al final también dejé de continuar de hacerlo en VB6... Si algún día me da por ponerme con esto de nuevo está claro que lo reescribiré (en Java, Mono, gambas o lo que sea) pero de momento no es mi intención... Aún así me gustaría cerrar con dignidad este proyecto :)
excelente editor , pero tiene un problema con los fpgs de bennu , especificamente
el que viene en el bennupack, ejemplos basicos
http://colombiandevelopers.googlecode.com/files/Basic%20Examples%20R2.1.rar
Hola:
Quote from: l1nk3rn3l on April 19, 2011, 05:31:36 PM
excelente editor , pero tiene un problema con los fpgs de bennu , especificamente
el que viene en el bennupack, ejemplos basicos
http://colombiandevelopers.googlecode.com/files/Basic%20Examples%20R2.1.rar
Cuado dices que tiene un problema con los fpgs de bennu imagino que te refieres únicamente a el fpg en concreto que indicas.
Te comento que
el problema es realmente del archivo en cuestión (mal formato interno). Smart Fpg Editor falla porque detecta que el archivo tiene algo inválido y genera un error (que de momento hace que caiga la aplicación, como todos los errores generados "a propósito" y motivo por el cual la release está marcada como "unstable").
Me dirás: el archivo se puede cargar con Fpg edit y con Bennu --> Yo también lo he podido cargar con Smart Fpg Editor obviando la información "errónea". Como decir que el archivo no es válido porque mi aplicación lo diga es poco objetivo te comento algunas pruebas que he hecho para asegurarme de que es así:
1ª prueba - Una vez obviada la info errónea, y después de cargar el archivo con smart fpg editor he guardado el FPG y he generado uno que a partir de entonces lo lee perfectamente.
2ª prueba - Con el FPG edit, he cargado el archivo y he guardado también una copia. La copia es leida sin problemas desde Smart Fpg Editor.
3ª prueba - Con Bennu, he hecho un load_fpg y un fpg_save y he generado también una copia. La copia es léida sin problemas desde Smart Fpg Editor.
4ª prueba. Los archivos fpg que genera bennu (o Smart Fpg Editor) están comprimidos en formato gzip. Si se cambia la extensión fpg por fpg.gz es posible abrirlo con un programa descompresor como Winrar o 7zip. El resultado para los distintos archivos generados son:
- El original --> No es posible descomprimirlo (! CRC failed in test.fpg. The file is corrupt; tanto con winrar como con 7zip)
- Tanto el generado por Smart Fpg Editor como el de Bennu --> Se extrae sin problemas y se genera un archivo test.fpg (que además coincide en tamaño con el que había generado el FPG edit)
Así pues, no estaría mal que sustituyeras ese archivo fpg por uno válido del todo :). Te adjunto el que he generado con bennu haciendo load_fpg y fpg_save.
Yo por mi parte es obvio que tengo que tratar el tema del error-handling en estos casos (ficheros corruptos, etc), pero es algo que ya tenía en cuenta.
Decir, que lo mismo ocurrirá si se intentan usar maps o paletas corruptos. Este es el sentido de lo de "unstable".
Gracias de todos modos por probar la aplicación.
Un saludo
GRACIAS
Hola Danko!
estuve leyendo un poco y queria pedirte un favor:
me armarias un instalador que incluya y registre todas las dependencias de terceros? solo de esa forma voy a poder correrlo en wine :)
Gracias!!
Hola JaViS:
En realidad lo único que necesitarías sería utilizar el Winetricks e instalar los "Vb6 redistributables" y los "ComCtl32" (common controls), y por si acaso las core-fonts. Estas son las únicas cosas que no incluye el paquete instalador. Luego se puede instalar la aplicación sin problemas.
Otra cosa es ejecutar el programa... yo lo probé ayer y efectivamente el programa carga, pero cuando se intenta cargar un FPG o añadir un map la aplicación se cae... Así que no tengo muchas esperanzas de que funcione realmente... Puedo investigar un poco para ver si quitando algo de lo que uso logro que funcione pero lo veo complicado...
En fin, es una pena, pero ya sabía las consecuencias de programar con VB6! (Lo que pasa esque este proyecto nació inicialmente como una herramienta de prueba cuando quería implementar el soporte para fpgs en flamebird...)
Desde mi punto de vista esto de usar wine no me convence del todo... y al fin y al cabo siempre tengo una copia virtualizada del WinXP en mi ordenador por lo que prefiero instalar los programas ahí directamente...
Gracias por el interés igualmente. Si alguna vez tienes ocasión de probarlo, creo que te gustará! =)
Subida una nueva versión que añade soporte para exportar a archivos PNG.
Quote from: darío on April 18, 2011, 09:43:15 PM
P.D.: Si alguien usa el programa cuando trabaja con Bennu me gustaría saberlo... anima saberlo :)
Aquí hay uno que lo utiliza y en Ubuntu. Me alegra mucho que siga en desarrollo. Muchas gracias y Karma.
JaViS, tengo tantas cosas instaladas con Wine que realmente no te puedo aconsejar. A mi se me instaló a la primera.
Pues me tendré que comer mis palabras... si que habrá soporte para Drag&Drop...
Os dejo un video (http://www.youtube.com/watch?v=8Vkrd7R9OJ8) de lo que será la versión 0.4 cuando termine de pulir algunas cosas. Esta versión traerá como características principales el soporte Drag&Drop, copy&paste y algunos cambios en la interfaz y el comportamiento del editor para la mejora de la experiencia del usuario :)
muy bueno dario.
buenisimo, creo que se acelera muchisimo el trabajo copiando y pegando.
Pues si que se acelera.
Yo me paso la mayor parte del tiempo compiando entre los diversos programas que uso para el pixel-art y cuando llego al FPG, a grabar para ver como queda.
Es un poco engorroso.
Edito:
Yo soy de windows y ¡karma up!
Sugerencia:
¿Se podria poner el paso de una archivo como parámetro para que lo abriera?
¿Y copy/paste?
O sea. Que al pulsar sobre un fpg con el explorer del windows se abra el programa y con él, el fpg.
¿Cómo se amplia y reduce el tamaño de los iconos mostrados? Si lo haces con la rueda del ratón como se haría sin ratón. (Yo tengo touchpad).
Hola, gracias por los comentarios, espero poder finalizar pronto los últimos detalles para la release :).
Respondo a las sugerencias:
¿Se podria poner el paso de una archivo como parámetro para que lo abriera?
Sí, se podría y no creo que cueste mucho. Lo tendré en cuenta.
¿Y copy/paste?
Es una de las cosas que ya se ha implementado (para la futura release 0.4). Es una de las cosas que muestra el vídeo ;)
O sea. Que al pulsar sobre un fpg con el explorer del windows se abra el programa y con él, el fpg.
Sí, esto también lo quiero hacer... no obstante no quiero enguarrar el registro de windows de nadie hasta una versión más avanzada y estabilizada, que haya convencido suficientemente al usuario como para que sea su editor de FPGs principal (y no uno auxiliar)
¿Cómo se amplia y reduce el tamaño de los iconos mostrados? Si lo haces con la rueda del ratón como se haría sin ratón. (Yo tengo touchpad).
Sí, ciertamente es con la rueda + tecla ctrl. De igual forma ahora se puede hacer Zoom en el visor de mapas. Tendré que pensar algo para el tema del tamaño de los zooms sin rueda ya que el "look minimalista" del editor no da cabida a muchos controles.
Podría hacerlo con alguna combinación de teclas (ctrl++, por ejemplo), pero los keystrokes no los he implementado todavía.
Bueno, gracias por los ánimos ¡cualquier otra sugerencia es bienvenida!
Darío
No olvides agregar la creacion automática de paletas para los fpg de 8bits! :D el editor esta quedando buenisimo!
Puedes explicar a qué te refieres??
A que no puedo crear FPG de 8 bits porque me pide paleta, creo que lo correcto sería armar un FPG tomando la paleta del primer grafico que añades por defecto, si es que no se especifica otra.
Gracias Daría. Te doy otro karma que esto está teniendo una pinta increible. ::)
Pero la paleta la puedes crear a partir del primer gráfico que vayas a añaidr. Es decir, cuando creas el FPG de 8bbp y te pregunta por la paleta puedes seleccionar cualquier archivo bmp, gif, map, png, etc. que sea de 8 bits... Entonces no veo el problema...
Pues que el BMP o lo que sea (digo bmp porque es con lo que trabajo normalmente) no sea de 8bits, pero use menos de 256 colores.
Lo suyo sea que en principio use una paleta estandar, y al añadir el gráfico te pregunte si quieres cargar la nueva paleta, fusionarla con la existente o adaptar los colores del nuevo mapa a la paleta cargada, como hacía DIV, lo cual exigiría un paso previo para obtener la paleta (y si el gráfico tiene más de 256 colores, reducirlos), comparar y mostrar las posibles paletas (implica tener una preview de todas ellas).
Esto sería lo ideal, pero ni de lejos es lo que debe tener tu programa ;)
Quote from: darío on May 06, 2011, 05:56:31 AM
Pero la paleta la puedes crear a partir del primer gráfico que vayas a añaidr. Es decir, cuando creas el FPG de 8bbp y te pregunta por la paleta puedes seleccionar cualquier archivo bmp, gif, map, png, etc. que sea de 8 bits... Entonces no veo el problema...
pues la verdad no sabia XD
Quote from: Drumpi on May 06, 2011, 01:05:41 PM
Pues que el BMP o lo que sea (digo bmp porque es con lo que trabajo normalmente) no sea de 8bits, pero use menos de 256 colores.
Lo suyo sea que en principio use una paleta estandar, y al añadir el gráfico te pregunte si quieres cargar la nueva paleta, fusionarla con la existente o adaptar los colores del nuevo mapa a la paleta cargada, como hacía DIV, lo cual exigiría un paso previo para obtener la paleta (y si el gráfico tiene más de 256 colores, reducirlos), comparar y mostrar las posibles paletas (implica tener una preview de todas ellas).
Esto sería lo ideal, pero ni de lejos es lo que debe tener tu programa ;)
No te creas, en realidad ya consideré esta opción ya que no es tan difícil de hacer. Sin embargo llegué a la conclusión de que el que trabaja con 8 bits en Bennu realmente sabe lo que está haciendo, sabe lo que es una paleta y probablemente cree sus gráficos de acuerdo a la misma... porque si no hay muchas maneras de convertir la imagen y queda indefinido el proceso en el que debe hacerse...
¿Qué ocurre cuando la paleta del FPG tiene colores repetidos? ¿o cuando el gráfico que se añade tiene colores repetidos en su paleta? Y me surgen otras tantas preguntas...
Para poderlo implementar tendría que tener muy claro como se debe comportar en cada caso y ciertamente no soy capaz de imaginar un comportamiento "coherente" para todas las situaciones que se pueden plantear...
Quote from: JaViS on May 06, 2011, 01:08:14 PM
Quote from: darío on May 06, 2011, 05:56:31 AM
Pero la paleta la puedes crear a partir del primer gráfico que vayas a añaidr. Es decir, cuando creas el FPG de 8bbp y te pregunta por la paleta puedes seleccionar cualquier archivo bmp, gif, map, png, etc. que sea de 8 bits... Entonces no veo el problema...
pues la verdad no sabia XD
Entonces es porque no es suficientemente intuitivo... ¡pensaré algo!
Bueno gracias a todos de nuevo por los comentarios!
Subida la versión 0.4.0 :)
Obviamente no me ha dado tiempo a tener en cuenta las sugerencias que habéis ido comentando porque ya estaban cerrados los cambios para esta versión, pero las tendré en cuenta para las siguientes ;)
La información de los cambios la tenéis en el primer post (http://forum.bennugd.org/index.php?topic=398.msg4746#msg4746)
Como siempre, estaré muy agradecido si me reportáis cualquier fallo que encontréis.
Espero que os guste! Un saludo!
Darío
Nueva versión, nuevo karma :)
A ver si lo instalo (es decir, descomprimo ;D) y le hecho un vistazo, que ahora estoy en Linux y no puedo :D
Voy a tener que poner en práctica mis conocimientos de Java y hacer un programa también para Linux (así mato los ratos libres de las clases en los que espero que la gente acabe de hacer sus programas :P).
Karma up por el gran trabajo que te estas tomando! Te esta quedando genial! Gracias Y saludos! ;D
KARMA!! :D
Gracias ;)
Quote from: Drumpi on May 07, 2011, 10:52:59 AM
Nueva versión, nuevo karma :)
A ver si lo instalo (es decir, descomprimo ;D) y le hecho un vistazo, que ahora estoy en Linux y no puedo :D
Si vas a probarlo en windows yo te recomendaría el instalador pero creo recordar que tu eras de los que le tenían tirria a los instaladores! :P
Un saludo!
Darío
Karma por aquí tambien.
A mi me pasa lo mismo. Prefiero las 'portables'.
Jeje de acuerdo, pero las portables tienen sentido si no se requiere este tipo de cosas de registrar componentes etc... Por que si no uno tiene que andar liado registrando y acordándose de desregistrar cuando quiere borrar el programa...
Yo creo que es más bien "una manía" (yo también la tengo a veces) por saber qué hace exactamente el isntalador, porque no nos gusta que se nos enguarre el sistema... pero si os quedáis más tranquilos puedo poner el código fuente del script del isntalador...
En este caso, haciéndolo a mano se corre más riesgo de dejar mierda en el sistema que instalando/desinstalado...
Pero bueno, está claro que para gusto los colores así que cada uno haga lo que le parezca!
Un saludo!
Pues, en el caso de visual basic, esta mas que justificado el uso del instalador, ya que los programas utilizan muchas dll que hay que estar registrando para que funcionen.
Yo trate de evitarlo en FB2 pero Dario tiene razon. No es la mejor solución
Yo los instaladores les tengo odio porque siempre terminan metiendo un fichero en la carpeta de windows, y se les "olvida" borrarlos después, o te escriben en el registro y cuando cambias de SO, al cambiar la estructura, errores por todos lados... o peor, tienes que instalarlo por cada usuario o tienes problemas de permisos...
Y eso cuando no te meten programas "automáticos" (para actualizaciones, complementos que no querías...).
Por ejemplo, tengo el FNTEdit y sólo lo puedo usar como administrador por culpa de los permisos: como invitado no puede escribir el fichero de configuración y no puedo cerrarlo de forma natural.
Si el problema es la asociación de la extensión, me da igual, pero si es algo más complejo, pues nada, se instala. De vosotros todavía me fío... aunque no demasiado ;D (por posibles bugs).
perdon drumpi que te corrija, no quiero que pienses que te persigo :)... pero no siempre los instaladores meten archivos en el directorio de windows.
y tampoco esta del todo bien decir que meten archivos que no queremos, si queremos instalar el producto entonces son archivos que si queremos.
actualmente creo que es bastante poco probable que un instalador deje archivos no deseados luego de su desinstalacion.
habia una herramienta fantastica en windows que es llamaba CleanSweep, que era un monitor de actividad, cuando uno instalaba algo, lo instalaba con esa aplicacion, y todo lo que el instalador hacia, se registraba y creaba backup de ser necesario de archivos, incluso entradas de registro, archivos ini, etc. y cuando uno queria desinstalar, lo hacia desde ahi, y puedo asegurar que quitaba todo rastro de lo que se instalo/modifico.
supongo que actualmente debe existir una herramienta similar a esto, o quizas ya lo hace el "instalar aplicaciones" de windows.
excelente herramienta, la incluiremos en el proximo bennupack...
y como dice splinter, en este caso no hay necesidad de copiar nada en carpeta
del sistema.. solo registrar las dll y al desinstalar quitar el registro..
si, es que a esta altura del partido, creo que preocuparse por lo que se mete o se deja de meter en la carpeta windows es un desproposito de tiempo.
Luego colgaré el código fuente del script del isntalador, así podéis ver lo que hace exactamente ;) Pero básicamente:
- Registra las dlls necesarias
- Crea la estructura de directorios
- Crea los accesos directos
- Mete las claves en el registro necesarias para que salga en la lista de agregar o quitar programas
Todas las cosas son eliminadas cuando se desinstala...
Y no, no copia nada a la carpeta del sistema, ni de windows.
Quote from: l1nk3rn3l on May 10, 2011, 01:37:49 AM
excelente herramienta, la incluiremos en el proximo bennupack...
Estupendo, si necesitas algo házmelo saber. Por cierto, que en principio con la última versión no deberías tener el problema con aquellos FPG mal formados.
Un saludo!
Darío
Quote from: darío on May 10, 2011, 06:10:12 AM
Estupendo, si necesitas algo házmelo saber. Por cierto, que en principio con la última versión no deberías tener el problema con aquellos FPG mal formados.
eso fue lo primero que probe.. jejejejeje ... excelente herramienta
entre mas herramientas mejor.. Gracias de nuevo...
Yo no me siento perseguido en absoluto ;)
Pero que yo quiera tener un programa no significa que quiera que se me cree una carpeta en "mis documentos" donde se guarden ficheros temporales, logs o cualquier otra cosa (es más, en todo programa que instalo, es lo primero que hago, cambiar las opciones para que, de usar una carpeta temporal, sea una que creo yo en el directorio de instalación o en una carpeta para tal efecto).
En Linux porque dichas carpetas aparecen como ocultas, y ni me molesto en buscarlas, que si no...
Tampoco me fio de los desinstaladores, temo que las instalaciones "acumulativas" me impidan deshacer una instalación sin que afecte a otros programas añadidos posteriormente :P
¿Cuantas barras de acceso directo a X web te intentan colar en los instaladores? ¿Y luego al desinstalarlas ha quedado limpio? ¿no te ha roto nada? ¿Te han actualizado alguna librería y ahora un programa con más tiempo ha dejado de funcionar por incompatibilidades?
Son cosillas que, después de muchos tropiezos, te acaban por poner histérico ¡ya ni instalo en la carpeta por defecto, por culpa de esto! :D
Pero lo dicho, de la gente del foro, me fio: tengo FPGEdit y FNTEdit instalados desde el primer día (y una versión "portable" para "jugar" en ordenadores ajenos ;D).
no tienes idea en linux el caos que es de cosas y carpetas que quedan instaladas al pedo... por suerte, en su mayoria, es en el perfil de usuario.
Decir que estoy utilizando la aplicación con gráficos 32bits y va muy bien. Hasta ahora ningún error y tampoco bugs. Muy bueno y aplicación que debería estar en la lista de descargas de la página principal de esta página.
La única cosa a añadir que le pondría sería, a deseo del usuario añadir a la descripción del mapa -en el momento de agregar un gráfico al fpg- el nombre del archivo. Esto es, por ejemplo, vamos a añadir main_menu.png al fpg y por defecto se añade vacío. Pues tener la posibilidad de añadir el nombre (main menu) a través de un botón, por ejemplo.
Un saludo
Hola,
Me alegro de que así sea :)
Es una buena sugerencia, lo tendré en cuenta para la siguiente actualización (ya sabéis que yo voy a rachas... pero nunca llego a desconectarme del todo).
Y claro, a mi también me gustaría que hubiera un enlace en la página oficial, pero no depende de mí.
Un saludo,
Darío
Como últimamente estoy usando esta aplicación con asiduidad, he visto un par de cosas que creo que serían interesantes para agregar:
1-. Al añadir un nuevo graph al fpg, la tecla enter tendría que ser igual que clickar encima del aceptar. Cuando tienes un porrón de gráficos que añadir o lo que sea, viene bien.
2-. Si no arrastras exprésamente encima de un graph ya incluído uno nuevo, siempre te intenta numerar el nuevo como el primer hueco. A veces cuando estás poniendo en las posiciones 150, 151, 152, ... el siguiente por intuición debería ser 153.
Un saludo
Hola,
Gracias. Lo primero ya está corregido.
Lo segundo tengo que pensarlo un poco porque me gusta el hecho de que se puedan ir "rellenando" los huecos de un FPG.
Un saludo
hola excelente editor
sugerencias
1. cuando se le pase un parametro desde el sistema operativo
que cargue el fpg cuando se arrastre al ejecutable
editor.exe %1
me explico cuando se asigne desde win2 el tipo de archivo fpg
al editor este lo abra..
2. cuando habro un fpg y borro uno o dos graficos y agrego otro a veces me
arroja error. uso fpg de 8 bits.
excelente de nuevo
Hola,
Gracias.
La sugerencia 1 está contemplada y estará disponible pronto.
Respecto al punto 2, ¿podrías especificar un poco más? ¿Qué error te aparece? Todos los errores deberían generar un "reporte de error" (sale una pantalla diciendo que se ha producido un error ¿Podrías pasarme este reporte de error o mejor aún, un fpg con el que te esté ocurriendo esto? Estoy a punto de terminar la versión siguiente y me gustaría que si hay algún error de este tipo poder corregirlo antes de lanzarla...
Un saludo,
Darío
Hola,
Quería compartir con vosotros un video (http://www.youtube.com/watch?v=qS1XsM6njtE) mostrando algunas de las características que incluirá la versión 0.4.5, la cual será liberada en los próximos días.
Estas características son:
- Menus contextuales para las acciones más típicas.
- Añadidos los botones "Siguiente/Anterior punto de control libre" en el editor visual de puntos de control para facilitar rellenar puntos de control no definidos entre puntos de control definidos.
- Ahora se puede arrastrar gráficos al explorador, generandose ficheros MAP o PNG (en función de si usamos la tecla Ctrl cuando arrastramos).
A parte de estas características se incluyen casi todas las demandadas por los usuarios a excepción de algunas que verán la luz más adelante. La lista completa de cambios la postearé como siempre cuando suba la release.
Quería hacer una petición a los que usan el programa para que me reporten los bugs o características que les gustaría que tuviese antes de que prepare el paquete, ya que una vez liberada la nueva versión puede que (como siempre) pase un tiempo hasta que venga la siguiente versión y quisiera que la versión fuese lo más estable posible.
Un saludo,
Darío
darío
agrego 2 veces un png al fpg ..
los borro y vuelvo a adicionar mas png y pasa error
aqui el fpg de 8 bits que ocasiona el error y el png para probar..
http://www.mediafire.com/?6n6k2cf8n6z9k6w
Gracias por la herramienta, y agradezco lo de poderse abrir un fpg con el exe %1..
aqui el codigo de error:
----------------------------------------------------------
SMART FPG EDITOR ERROR REPORT
----------------------------------------------------------
Date: 2011.08.28@15:48:45
Smart Fpg Editor version: 0.4.0
bennulib version: 1.0.16
Error #112#:
'El índice especificado '1' está fuera del rango admitido para este FPG.'
Call Stack:
SmartFpgEditor.mnuActions@AddGraphic
bennulib.cFpg@Maps
bennulib.cFpg@bennulib.cFpg
----------------------------------------------------------
aqui el codigo de visual basic, es un ejemplo para capturar comandos al exe
claro en el caso , si no lo tenias (ejemplo que suma los 2 parametros pasados al exe):
Private Sub Form_Load()
Dim separador, a, b As Integer
separador = InStr(1, Command,",", vbTextCompare)
a = Mid(Command, 1, separador - 1)
b = Mid(Command, separador + 1)
MsgBox "La suma es: " & a + b
End sub
Muchas gracias, ya está solucionado. La semana que viene subiré la nueva versión (probablemente el finde).
El error se produce siempre que se sigue lo siguiente:
- Se selecciona un gráfico
- Se elimina
- Se añade un gráfico
Mientras tanto: El error tiene que ver con que al borrar el gráfico, el estado interno que almacena la "selección" no se actualizaba correctamente. Para evitarlo puedes, antes de añadir el gráfico:
1- Clickear fuera de los gráficos (como si quisieras deseleccionar)
2- Seleccionar otro gráfico cualquiera.
Con respecto a lo de los parámetros, ya estaba añadido ;). El codigo es sensiblemente más complicado porque quería poder parsear la línea de comandos y aceptar rutas con espacios... y porque pienso agregar un poco de funcionalidad adicional al parser El funcionamiento sería
sfpge.exe C:\miArchivo.fpg "c:\mi archivo 2.fpg" otroarchivo.fpg c:\carpeta\"otra con "espacios.fpg
Lo que abriría los 4 archivos.
Hola,
Ya está disponible la versión 0.4.5 para descarga en http://code.google.com/p/smartfpgeditor/ (http://code.google.com/p/smartfpgeditor/).
(http://dariocutillas.files.wordpress.com/2011/09/sshot1.png)
El listado de las modificaciones lo tenéis en el primer post (http://forum.bennugd.org/index.php?topic=398.0).
Gracias a todos los que habéis ido reportando fallos/mejoras y críticas.
Espero que os guste!
Darío
Magnifico!! va estupendamete xD Buen trabajo :)
Se ve de miedo. Descargando para probar (resultados para el año que viene ^^U), a ver qué tal va (tengo que actualizarme, aun sigo con el FPGEdit de la era Fenix :D).
karma up.
gracias excelente trabajo
Primero un karma. :-*
Y ahora a probarlo. :D
¡Hola!
Lo primero otro karma y mi enhorabuena por el pedazo programa que te está quedando.
Todavía no lo he probado muy a fondo, pero esto está de miedo. Ahora bien...
-Echo de demos las teclas de acceso rápido.
-He encontrado un extraño bug donde ocurre lo siguiente:
Al crear una nueva imagen dentro del fpg a través de pegar, altera los colores.
Me explico, creo una imagen en negro absoluto (0,0,0), la pego, y cuando la vuelvo a copiar se ha convertido en (0,0,8), con lo cual ya no funciona el negro transparente.
Si alguien más pudiera confirmar que le pasa lo mismo, lo agradecería.
Saludos.
Pd.
Te advierto que voy a ser tu más fiero betatester, porque le voy a meter bastante caña al programa en cuanto lo encuentre operativo para mi forma de trabajar. :D
¡Animo!
Hola,
Gracias a todos por los comentarios.
Fede:
Lo de las teclas de acceso rápido es un elemento en mi TODO list.
Respecto lo del bug, ¿podrías darme un poco más de información? En concreto me interesa:
- El fpg que creas es de 8, 16 o 32bpp?
- ¿uál es el procedimiento exacto? Me refiero a algo tipo:
a) Creas una imagen png. Agregas la imagen. Copias la imagen en SFPGE. Pegas la imagen en SFPGE
b) No creas ninguna imagen png, simplemente copias de otro programa. Copias la imagen en SFPGE. Pegas la imagen en SFPGE.
c) Otro procedimiento
Lo miro esta tarde después de trabajar.
Muchas gracias!
Explicación larga...
Trabajo con el GraphicsGale al 90% y photoshop CS2 al otro 10% y normalmente en 16 bits.
(También lo he probado a 24 bits y hace lo mismo).
Con una imagen en pantalla totalmente negra (0,0,0) en cualquiera de los dos programas hago un copy, luego un paste en 'nueva imagen' en el fpg (esto es, si la última imagen es la 11, hago un paste en la 12); de esta de nuevo un copy, luego un paste en Photoshop o en el GraphicsGale, y la imagen se ha transformado en (0,0,8).
Está claro que el fallo es al hacer el paste en el fpg, porque al grabarlo y probarlo con el Bennu, el negro deja de ser transparente.
No he probado que pasa con los demás colores, como es natural donde primero me he dado cuenta es donde Bennu realiza la transparencia, que es con el (0,0,0).
Mi duda es si pudiera ser una incompatibilidad de alguno de los programas, del buffer de copiado de Windows o de la madre que me parió. Por eso me gustaría que alguien más lo probase con su ordenador, o incluso con Linux.
Gracias por responder tan rápido.
Hola,
Muchas gracias. Con esta información lo probaré (tengo el Photoshop tmb)
Lo pruebo hoy y te comento.
Un saludo
Atento estoy. 8)
Yo diría que el fallo está en lo de siempre: que se le indica que el color es rgb=(0,0,0) en lugar de color=0, el primero lo toma bennu como color=1 y lo hace no transparente.
Tiene que haber una conversión de ese tipo en algún lado.
No es un error del programa, es el funcionamiento normal por lo siguiente.
Smart Fpg Editor entiende las transparencias de la siguiente forma:
En 8bpp --> El indice de color 0
En 16bpp --> El negro
En 32bpp --> Cualquier color con la componente alpha distinta de 255
Cuando tu haces una copia de un gráfico con photoshop, la imagen que se crea es de 32 bpp (en concreto, un DIB de 32bpp y que además, no tiene transparencia -si tu imagen tiene canal alpha, se creará en memoria un DIB de 32bpp acoplado con el fondo, que en general es blanco-) y esto es independiente de si en photoshop trabajas con una imagen de un tipo o de otra (el DIB creado en el buffer del copy&paste es el mismo).
El funcionamiento de Smart Fpg Editor cuando hay que hacer conversiones de color:
Para 16bpp, una imagen que no tenga una profundidad exacta de 16bpp (pj un png de 32) para que una parte sea transparente, tiene que tener su componente alpha < 128 (>=50% de transparencia).
En 32bpp, el negro nunca se interpretará como transparente.
Conclusión: Una imagen copiada de photoshop u otro programa a SFPGE nunca hará transparente el negro ya que los DIBs siempre serán de 32bpps.
El funcionamiento de smart fpg editor es análogo a lo que haría bennu.
Si tu cargas un PNG (que no hay de 16), las partes que se interpretan como transparentes son únicamente aquellas que tienen una transparencia superior al 50%. Prueba a guardar tu imagen negra como un PNG de 32bpp y a cargarlo con Bennu y lo verás.
Podría poner una opción al añadir un gráfico que "convirtiese" el negro a transparente, Pero esto solo tiene sentido en "16bpp".
Así que el funcionamiento de Smart Fpg Editor creo que es correcto. Otra cosa es que de cara al trabajo, el copy&paste no sea muy útil si no se pueden hacer ciertas operaciones y para eso la única forma es añadir opciones a la hora de agregar un gráfico.
Pensaré qué hacer, pero no puedo decir que sea un "bug" de SFPGE, funciona como quise que funcionase.
Para gráficos transparentes de momento la única forma es trabajar con transparencias y un formato que lo admita, o con imágenes en 16bpp (por ejemplo tiff o bmps de 16bpp, donde el negro será interpretado como transparente).
Un saludo,
darío
Ejem...
Gracias por la explicación pero apenas he pillado nada.
No entiendo de canales alpha porque todavía no me he metido a hacer transparencias en ningún gráfico.
Sólo sé que el (0,0,0) es el color que bennu hará transparente.
Ahora bien, si tu programa por alguna conversión me transforma ese color en (0,0,8) no lo comprendo.
Si PhotoShop no me lo hace, ¿por qué lo hace el tuyo?
El color (0,0,0) debería de ser (0,0,0) independientemente de la profundidad de bits que tenga la imagen.
Otro ejemplo.
Abro el paint, pinto un cuadrado negro (0,0,0), lo pego en el fpg de 16 bis. Lo vuelvo a leer desde el fpg y se ha convertido en (0,0,15).
Saludos y de verdad, gracias por el exfuerzo.
Prueba lo siguiente:
1 - Guarda un png totalmente negro de 32bpp
2 - Haz un programa en bennu que setee el modo a 16 y carga ese archivo png con load_png en un graph
Entonces verás que el (0,0,0) ya no es (0,0,0).
De todos modos revisaré lo que dices de que se convierta a 0,0,8 o 0,0,15 (eso si que me sorprende un poco) en función de donde pegues.
Este finde seguro que tengo un rato para revisarlo.
Un saludo y gracias a tí.
Lo que quiere decir es que el formato de una imagen cualquiera se guarda en formato de 32 colores. Si quieres guardarla en un FPG de 16, el color transparente sólo atiende al canal alpha ¿que qué es el canal alpha?
Como sabemos, cada pixel tiene tres componentes de color, RGB, que se definen por un valor entre 0 y 255 (usar más es tontería, el ojo humano no es capaz de captarlo), lo que nos dan 3 valores de 8 bits, o sea, 24 bits por pixel. Como la memoria de los ordenadores se alinean en potencias de 2, lo ideal es que cada pixel se represente mediante 8bits (paleta de 256 colores), 16 bits o 32 bits.
Con 24bits nos sobran 8 ¿qué hacemos con ellos? los usamos para indicar cómo de transparente es el pixel (0 es completamente transparente y 255 es opaco). Esto nos da una imágen de tipo RGBA (Red, Green, Blue, Alpha) en lugar de RGB (Red, Green, Blue). De ahí el canal alpha, igual que existe el canal verde, el azul y el rojo.
Hasta ahora, todas las imágenes se guardan en 8bits, 24bits y 32bits:
-8bits está casi obsoleto, salvo para el formato GIF.
-32bits es el formato normal, ya que casi todos los formatos actuales soportan transparencias.
-24bits es menos común, pero se usa (ejemplo claro, el BMP de toda la vida, antes de la aberración post Wxp).
Conclusión, usar el canal alpha para definir el color transparente, y si no existe, usar el negro puro. En este caso, Bennu es aun más restrictivo, porque en imágenes de 32bits, el color transparente es el RGBA=(0,0,0,0).
Gracias Drumpi. Ahora más o menos lo cojo.
Pero sigo sin entender que tipo de conversión se le aplica para convertir un 0,0,0 en un 0,0,8.
Si en 16 bits no lleva información del alfa y el 0,0,0 es tan importante en bennu, ¿por qué no se hace una excepción con ese color?
Me refiero sólo en 16 bits. En otro ya se supone que sería 0,0,0,x y habría que respetarlo.
Porque no hay formatos estandar que soporten 16bits, no al menos el (5,6,5) de Bennu, por lo general se usa el (5,5,5) (es el número de bits de cada componente).
Se ha tomado como patrón que, si el formato que se vaya a convertir no soporta canal alpha, sea el color 0 el transparente (es el caso del BMP), pero si lo acepta, debe usarse el canal alpha para definirlo (como pasa con PNG) y de no hacerlo, se supone que se quería poner un color negro sin transparencias, y se cambia por el color 1=(0,0,8) (se usa el 8 porque en lugar de usar 8 bits para la componente azul, en modo 16bits se usan 5bits, por lo que hay que dividir entre 8 dicho valor para hacer la conversión).
Bueno, más o menos lo he cogido. Gracias Drumpi.
Una solución sencilla que se me ocurre, es tener una opción en la configuación del programa para forzar un tipo de comportamiento u otro. Vamos, si es que se puede.
Ya que trabajamos con Bennu, supongo que el programa debería adecuarse a las necesidades del lenguaje y no a la del 'mundo real'.
A ver que dice Dario. Si esto tiene solución, o a aguantarse. :D
Hola,
Gracias Drumpi por la explicación... la verdad es que mis respuestas han sido escuetas pero es por la falta de tiempo.
Fede, precisamente por los motivos que comenta drumpi, esta es la forma de trabajar con gráficos cuando se crea un FPG de 16bpp en SFPG.
1 - Si añades un gráfico que tenga paleta, el color 0 se puede usar como color de transparencia (también se puede omitir este comportamiento con la lista de opciones que sale en la ventana "Añadir gráfico")
2 - Si añades un gráfico de 16bpp, por ejemplo un BPM, un TIFF u otro formato que soporte esta profundidad (puedes probarlo con el paint), entonces el NEGRO SÍ se interpreta como color transparente (también se puede omitir este comportamiento)
3 - Si añades un gráfico de más profundidad, entonces NO se asume que el negro sea el transparente, sino que aquellos pixeles que sean un 50% o más transparente serán los que se consideren transparentes (dentro del FPG tendrán el color 0,0,0). El negro puro se transforma a otro color.
Creemé, esto lo estuve pensando mucho y me parece que es la manera más correcta. Como el Copy&Paste genera gráficos de 24bpp, se está en la situación 3 y es por eso que el negro de la imagen se transforma a "otro color" cercano al negro.
Ahora bien, obviamente a mi lo que me interesa es ofrecer soluciones y de hecho en este caso es bastante sencilla: Para el caso 3 añadir una opción en la que considere el negro como color transparente (y que salga en el listado de opciones que hay cuando se añade un gráfico).
Obviamente ha de ser una opción porque si no, el que quiera hacer un gráfico negro tendrá que tener presente todo el rato que tendría que usar el 0,0,8 y esto no es para nada intuitivo.
Esto es sencillo de hacer y creo que cubrirá tus necesidades (y creo que es una buena mejora). Lo incluiré para la siguiente release.
En realidad, yo solo quise exponer al principio que no se trataba de un error del programa sino más bien de la forma en la que ha sido diseñado, pero obviamente debo tener en cuenta el uso que hacéis los usuarios y ofrecer soluciones a los problemas porque al fin y al cabo lo que a mi me gusta es que haya gente que le sirva el programa, y eso es lo que me anima a continuarlo.
Bueno pues eso, os mantengo al tanto.
Un saludo y espero que se haya aclarado más la cosa.
Por cierto Drumpi, te "karmeo" por ahorrame a mì la explicación ;)
No te beso porque no llego. :-*
¡Otro karma!
Fede, porque te conozco, porque si no, con tanto beso, voy a empezar a pensar mal (y creo que también tengo que meter a Futu en el mismo saco :D:D:D).
Lo cierto es que trabajar con FPGs, en este aspecto, muchas veces es muy pesado, y acabas por recurrir a otros programas (DIV, código propio...). Ejemplo claro fue la de problemas que tuvimos en el último juego de Locura Andaluza, aun se ven muchos gráficos con transparencias donde debía ir el color negro.
Soy un muy fan de los interfaces simples y claros, y con herraminetas que no distraigan de lo que es importante. Me encantan por ejemplo, los interfaces de Lightroom, Microsoft Expression Blend, ... Aquí los ejemplos:
http://www.google.es/search?q=lightroom+IDE&hl=es&prmd=imvns&source=lnms&tbm=isch&ei=46B3TpXYN4mnhAfcwtijAQ&sa=X&oi=mode_link&ct=mode&cd=2&ved=0CA0Q_AUoAQ&biw=1920&bih=922#hl=es&tbm=isch&sa=1&q=lightroom+3&pbx=1&oq=lightroom&aq=1&aqi=g10&aql=&gs_sm=e&gs_upl=40409l41290l0l45681l4l4l0l0l0l1l763l1143l3-1.6-1l2l0&bav=on.2,or.r_gc.r_pw.&fp=f83a83341b59efa2&biw=1920&bih=922 (http://www.google.es/search?q=lightroom+IDE&hl=es&prmd=imvns&source=lnms&tbm=isch&ei=46B3TpXYN4mnhAfcwtijAQ&sa=X&oi=mode_link&ct=mode&cd=2&ved=0CA0Q_AUoAQ&biw=1920&bih=922#hl=es&tbm=isch&sa=1&q=lightroom+3&pbx=1&oq=lightroom&aq=1&aqi=g10&aql=&gs_sm=e&gs_upl=40409l41290l0l45681l4l4l0l0l0l1l763l1143l3-1.6-1l2l0&bav=on.2,or.r_gc.r_pw.&fp=f83a83341b59efa2&biw=1920&bih=922)
http://www.google.es/search?q=expression+blend+5&hl=es&prmd=imvns&source=lnms&tbm=isch&ei=1KJ3TtnXA4GWhQfTmYWQDg&sa=X&oi=mode_link&ct=mode&cd=2&ved=0CCEQ_AUoAQ&biw=1920&bih=922#hl=es&tbm=isch&sa=1&q=expression+blend+4&pbx=1&oq=expression+blend+4&aq=f&aqi=g1&aql=&gs_sm=e&gs_upl=2609l2991l0l3344l2l2l0l0l0l0l427l772l3-1.1l2l0&bav=on.2,or.r_gc.r_pw.&fp=f83a83341b59efa2&biw=1920&bih=922 (http://www.google.es/search?q=expression+blend+5&hl=es&prmd=imvns&source=lnms&tbm=isch&ei=1KJ3TtnXA4GWhQfTmYWQDg&sa=X&oi=mode_link&ct=mode&cd=2&ved=0CCEQ_AUoAQ&biw=1920&bih=922#hl=es&tbm=isch&sa=1&q=expression+blend+4&pbx=1&oq=expression+blend+4&aq=f&aqi=g1&aql=&gs_sm=e&gs_upl=2609l2991l0l3344l2l2l0l0l0l0l427l772l3-1.1l2l0&bav=on.2,or.r_gc.r_pw.&fp=f83a83341b59efa2&biw=1920&bih=922)
A lo que iba. Sin tener el fondo siempre blanco, ponerle uno más gris, medio o oscuro y con texto gris clarito, creo que sería un acierto para la herramienta.
Un saludo
Buenas, estaba subiendo graficos a un fpg de 32 bits, iba creo por el 444 y la aplicación tuvo un crash.
El problema es que ahora si vuelvo a abrir el smart editor tengo siempre el crash al abrirlo...
Seguramente sólo se resuelva reiniciando. Por otro lado ahora mi miedo es que el fpg se haya dañao.
(http://forum.bennugd.org/index.php?action=dlattach;topic=398.0;attach=2343)
con cerrar sesión se ha arreglao, el fpg esta bueno
cosa mas rara
has backup free.
backup de que ? Eso no evita que tengas que volver a meter todos los graficos de nuevo dentro de un fpg cuando tienes un crash durante la operación xD
Es un coñazo meter graficos y enumerarlos en un fpg, ese es mi miedo, tener que hacerlo de nuevo, no otra cosa xD
puf...
hombre, si haces un backup de tu fpg, no tienes que preocuparte que se te corrompa, a lo sumo incorporas los graficos nuevos...
si fuera tan sencillo como lo haces ver en tu ultimo comentario, no entiendo tu miedo en este mensaje http://forum.bennugd.org/index.php?topic=398.msg51203#msg51203
si total los metes de nuevo y listo...
lo que digo, es que al menos tras cada grabacion a disco hagas un backup de la copia... (copiarlo con otro nombre) y claro esta que grabes cada tanto tiempo.
Hola,
Solo un comentario: Las operaciones de escritura/lectura del FPG solo se realizan al guardar/abrir el mismo, mientras tanto todo se mantiene en memoria por lo que no es posible que se corrompa un fichero .fpg mientras se añaden archivos o se hace cualquier otra cosa que no sea abrir/guardar el FPG.
Un saludo
Por cierto el src incluye todo el src del proyecto, incluyendo los siguientes componentes ?
- bennulib.dll
- SmartBennuCtls.ocx
- parselite.dll
- smartcpx.dll
dario, ya que estamos pregunto, como manejas el tema del nombre de los mapas dentro del fpg? pregunto, porque el fpgedit lo esta haciendo mal.
podrias colgar un fpg creado con tu herramienta y con 1 o 2 mapas chiquitos con nombre? tengo linux, y me parece que no funcionaba en linux.
si esto ya lo pregunte, disculpa, la edad no viene sola.
Hola,
Llevo un tiempo un poco apartado, pero es por mucho trabajo...
FreeYourMind:
No, ahora mismo no lo incluye, pero mi intención es subirlo porque varios usuarios se han preocupado por ello y en realidad no lo "escondía" por motivos de no compartir el código. Tenía dos motivos para no haberlos subido:
1 - Subir el código del proyecto podía hacer que se generaran versiones bennulib.dll no compatibles con las que yo desarrollase, lo que sería un embrollo (infierno de las dll de windows) --> Seguramente subiré el código separado (el de de cada módulo) pero no el archivo de proyecto, para evitar que se compile SmartFpgEditor sin cambiar las referencias OLE.
2 - Esperaba acabar alguna cosilla antes de subirlo.
SplinterGU:
Yo también tengo Linux :), lo tengo en un windows virtualizado de hecho. Cuando tenga un rato lo hago, pero aviso que últimamente ni enciendo el portátil en casa... (en el trabajo tengo windows pero no puedo instalarlo por permisos).
De todos modos, yo uso la descripción (char de 32) y además utilizo una tabla de conversión para adaptar tabla de caracteres a la que toca. El FPG edit creo utiliza el registro que estaba destinado a contener la ruta del archivo que se había importado (tiempos de DIV), pero yo no uso este campo para nada (creo quelo relleno con "SmartFpgEditor"), ya que no me parece útil y además no está en el formato MAP.
Efectivamente, yo también opiné en su momento que la forma del FPG edit era incorrecta y por eso lo hice como pensaba que era correcta.
Tarde... pero por si sirve
Hola,
Paso poco pero paso... Tengo "un poco" de tiempo libre estos días y estoy actualizando el Smart Fpg Editor.
La versión 0.5.0, que espero tener lista la semana 10 traerá
- Editor de paletas sencillo y amigable (siguiendo la filosofía sfpge...).
--- Permitirá editar la paleta y ver una preview de como afecta a los gráficos del FPG.
- Inclusión de alguna sugerencia que fue comentada por los foros.
Además prepararé los fuentes de SmartBennuControls.ocx y bennulib.dll (aunque quizá lleguen con una semana de retraso).
Espero que quede algún usuario de mi programa que parece que FPGEdit tiene prácticamente el monopolio :). Si es así agradecería sugerencias o que me informéis si habéis encontrado algún fallo que os gustase que fuese corregido para esta release.
Os dejo una capturilla, aunque empecé a programar ayer así que todavía está lejos del "aspecto final":
Un saludo,
Darío
(http://www.dacucar.es/sfpge/sshot_palette_preview.jpg)
Buenisima noticia!. Apenas este lista la descarga la anunciamos en las noticias de la web
que bien se ve eso!
Te equivocas fpg edit no tiene monopolio para nada, si te sirve de consuelo sólo uso exclusivamente el tuyo para fpg's de 32 bits, ya que el fpg edit me ha dado algun crash con este formato y haste he llegado a perder un fpg...
eso si, para fpg's de 16 uso el fpg edit, si te digo la verdad lo unico que no me gusta en el tuyo es que nos obligas a instalarlo, en cambio el fpg edit es estandalone y lo puedes poner junto al proyecto siendo este totalmente portable.
pero en lo demás, tu aplicación tiene una interface bastante profesional y me gusta bastante
:D, a mi también me gusta mucho, yo estoy deseando que alguno de vuestros proyectos smart fpg editor o bennu.net tenga todo lo que fpgedit hace para dejar de usarlo (y mantenerlo :D).
Yo cogí el proyecto de rebote ya que el autor original desapareció de la scene y no le dio soporte de 32 bits que tanto ansíabamos en bennugd.
La verdad es que por las descargas que lleva fpg-edit, parece no tener mucho éxito, el pico más alto de descargas lo obtuve con la versión r26, (14 descargas, uff, y una de ellas seguro que mía :D )
Free. Q fpgedit es mas estable en 16bit que en 32? :o Lo dudo. Al menos a partir de la version 3.1. 32 bits es el formato directo y el mas fiable. Para todos los demas hay que hacer conversiones. Que pueden ser las causantes de errores no controlados.
Nota: en la r26 quité un error de indices. Provocado por culpa de que object pascal soporte arrays que empiecen en 1 en vez de en 0.
la ultima version (la verde) no la he usado para mis proyectos todavia, sólo he probado la version debug que me enviaste. posiblemente ya no tenga estos errores pero me referia a la version FPG Edit 2009 32 bits que incluias los 2 exes
;), sí. En delphi 7. El soporte de 32 bits no era nativo. Y existia un fallo en los alphas que hacia que algunos pixeles no se vieran en fpgedit y luego sí en bennugd. Y un error de punteros al intentar liberar algunos recursos dos veces.
Fijo que alguno de ellos fue el causante. Te rogaria encarecidamente que sometad a las mismas pruebas que fallaban antes al fpgeditor verde. Para asi asegurarnos que desaparecieron.
Perdon por resucitar esto, pero se llego a terminar el tema del editor de paletas?
En la web (google code (https://code.google.com/p/smartfpgeditor/)) la ultima version que hay es la 0.4.5