Bennu Game Development

Foros en Español => Otros DIV-likes => PixTudio => Mensaje iniciado por: josebita en Octubre 26, 2015, 09:32:22 am

Título: Diario de desarrollo
Publicado por: josebita en Octubre 26, 2015, 09:32:22 am
Bueno, algunas cosas que he ido haciendo últimamente:
Título: Re: PixTudio progress updates
Publicado por: JaViS en Octubre 26, 2015, 12:23:49 pm
Bueno, algunas cosas que he ido haciendo últimamente:
  • mod_theora vuelve a sonar, pero esta vez mediante OpenAL. Cuando el sonido estaba basado en SDL_mixer, se podía reproducir el audio de un vídeo o todo lo demás, pero no ambas cosas a la vez.
    La limitación de sólo poder reproducir un vídeo sigue ahí, pero debería ser sencilla de eliminar ahora.
  • He actualizado el proyecto para iOS, de forma que ahora mismo hay una versión -al menos mínimamente- funcional de PixTudio para iOS. No la he probado en profundidad y la limitación de no poder subir juegos a la App Store sigue ahí, pero algo es algo.
  • He trabajado en separar el interfaz de depurado (la mod_debug) del renderizado. La idea es que la consola de debug funcione en un IDE, en lugar de en la propia consola del juego. Creo que será muy útil para depurar código que esté corriendo en dispositivos móviles y me ahorro tener que arreglar el código de dibujado a pantalla, que funciona a una densidad de píxeles que no funciona.
  • Algunas cosas más que no me acuerdo.
Muy bueno! Gracias por el update!

Enviado desde mi Nexus 7 mediante Tapatalk

Título: Re: PixTudio progress updates
Publicado por: l1nk3rn3l en Octubre 27, 2015, 02:41:12 am
excelente los nuevos aportes...


tenemos una duda...


mirando g_video.c (linea 277)

creo que no es necesario estar destruyendo la ventana y el renderizador cada vez que llamamos a set_mode

eso crearia memory leaks y haria mas inestable el juego



1. solo se crea un solo renderizador y una sola ventana..(al iniciar el motor)
2. sdl_renderer no contiene atributos de dimension o medidas y demas por lo tanto para que destruirlo?
3. la ventana contiene esos atributos por lo tanto cada vez que cambia el modo cambiar los atributos de la ventana sin destruirla


SDL_SetWindowSize(Window, ScreenSizeX, ScreenSizeY);

y el clasico para modificar el borde

SDL_SetWindowBordered(SDL_Window* window, SDL_bool bordered)

las demas funciones SET para modificar la ventana

https://wiki.libsdl.org/CategoryVideo

internamente sdl2 tiene vinculado el renderer por lo tanto se modifica la ventana === se modifica el renderer automaticamente


para la creacion del renderer siempre se crearia a la primera con los atributos
mas usados   SDL_RENDERER_ACCELERATED

asi que en resumen se crearia la ventana y el renderer una sola vez en la funcion setmode indicando con un flag que ya se inicializo(inclusive si el usuario carga un fpg antes del setmode no pasaria nada que es el comportamiento normal de bennu
cargar el setmode/gr_init al inicio del libvideo--module_initialize

y cada vez que el juego llame al setmode solo se actualizaria la ventana con los nuevos atributos sin destruirla


-se ganaria en velocidad del juego(ya que sdl2 destruye todas las texturas asociadas al renderer con la lentitud que eso supone cargar y descargar texturas en un juego)
-no habrian crash en el juego porque no habrian memory leaks
-no aparecerian errores en pixtudio de textura no valida


hemos estado ocupados ya te echamos una mano....  y te pasamos el g_video.c    con el fix
Título: Re: PixTudio progress updates
Publicado por: josebita en Octubre 27, 2015, 10:03:21 am
Creo que tienes razón, sí.
Lo miro y trato de implementarlo.

Mil gracias.
excelente los nuevos aportes...


tenemos una duda...


mirando g_video.c (linea 277)

creo que no es necesario estar destruyendo la ventana y el renderizador cada vez que llamamos a set_mode

eso crearia memory leaks y haria mas inestable el juego



1. solo se crea un solo renderizador y una sola ventana..(al iniciar el motor)
2. sdl_renderer no contiene atributos de dimension o medidas y demas por lo tanto para que destruirlo?
3. la ventana contiene esos atributos por lo tanto cada vez que cambia el modo cambiar los atributos de la ventana sin destruirla


SDL_SetWindowSize(Window, ScreenSizeX, ScreenSizeY);

y el clasico para modificar el borde

SDL_SetWindowBordered(SDL_Window* window, SDL_bool bordered)

las demas funciones SET para modificar la ventana

https://wiki.libsdl.org/CategoryVideo

internamente sdl2 tiene vinculado el renderer por lo tanto se modifica la ventana === se modifica el renderer automaticamente


para la creacion del renderer siempre se crearia a la primera con los atributos
mas usados   SDL_RENDERER_ACCELERATED

asi que en resumen se crearia la ventana y el renderer una sola vez en la funcion setmode indicando con un flag que ya se inicializo(inclusive si el usuario carga un fpg antes del setmode no pasaria nada que es el comportamiento normal de bennu
cargar el setmode/gr_init al inicio del libvideo--module_initialize

y cada vez que el juego llame al setmode solo se actualizaria la ventana con los nuevos atributos sin destruirla


-se ganaria en velocidad del juego(ya que sdl2 destruye todas las texturas asociadas al renderer con la lentitud que eso supone cargar y descargar texturas en un juego)
-no habrian crash en el juego porque no habrian memory leaks
-no aparecerian errores en pixtudio de textura no valida


hemos estado ocupados ya te echamos una mano....  y te pasamos el g_video.c    con el fix
Título: Re: PixTudio progress updates
Publicado por: josebita en Octubre 28, 2015, 08:13:16 pm
* El commit bb16c71 (https://bitbucket.org/josebagar/pixtudio/commits/bb16c71f9710b6d62584ab07966e5e05fe08da87) incluye los cambios que comentan, l1nk3rn3l, así como algunos más. Si notáis algo raro en el comportamiento, por favor avisad.
* He aprovechado para eliminar el parámetro de profundidad de color del set_mode, dado que el único modo soportado es el de 32 bits.
* Además he añadido un par de funciones a la mod_wm para activar y desactivar el salvapantallas.
* He eliminado la mod_blendop de la compilación por defecto, dado que no funciona.
* He añadido una función llamada map_colormod_set que hace las veces de blendop_tint: aplica un factor de escala a la forma en que se muestran los colores de un gráfico en particular.
* Necesito una documentación...

excelente los nuevos aportes...


tenemos una duda...


mirando g_video.c (linea 277)

creo que no es necesario estar destruyendo la ventana y el renderizador cada vez que llamamos a set_mode

eso crearia memory leaks y haria mas inestable el juego



1. solo se crea un solo renderizador y una sola ventana..(al iniciar el motor)
2. sdl_renderer no contiene atributos de dimension o medidas y demas por lo tanto para que destruirlo?
3. la ventana contiene esos atributos por lo tanto cada vez que cambia el modo cambiar los atributos de la ventana sin destruirla


SDL_SetWindowSize(Window, ScreenSizeX, ScreenSizeY);

y el clasico para modificar el borde

SDL_SetWindowBordered(SDL_Window* window, SDL_bool bordered)

las demas funciones SET para modificar la ventana

https://wiki.libsdl.org/CategoryVideo (https://wiki.libsdl.org/CategoryVideo)

internamente sdl2 tiene vinculado el renderer por lo tanto se modifica la ventana === se modifica el renderer automaticamente


para la creacion del renderer siempre se crearia a la primera con los atributos
mas usados   SDL_RENDERER_ACCELERATED

asi que en resumen se crearia la ventana y el renderer una sola vez en la funcion setmode indicando con un flag que ya se inicializo(inclusive si el usuario carga un fpg antes del setmode no pasaria nada que es el comportamiento normal de bennu
cargar el setmode/gr_init al inicio del libvideo--module_initialize

y cada vez que el juego llame al setmode solo se actualizaria la ventana con los nuevos atributos sin destruirla


-se ganaria en velocidad del juego(ya que sdl2 destruye todas las texturas asociadas al renderer con la lentitud que eso supone cargar y descargar texturas en un juego)
-no habrian crash en el juego porque no habrian memory leaks
-no aparecerian errores en pixtudio de textura no valida


hemos estado ocupados ya te echamos una mano....  y te pasamos el g_video.c    con el fix
Título: Re: PixTudio progress updates
Publicado por: JaViS en Octubre 28, 2015, 11:49:54 pm
* El commit bb16c71 (https://bitbucket.org/josebagar/pixtudio/commits/bb16c71f9710b6d62584ab07966e5e05fe08da87) incluye los cambios que comentan, l1nk3rn3l, así como algunos más. Si notáis algo raro en el comportamiento, por favor avisad.
* He aprovechado para eliminar el parámetro de profundidad de color del set_mode, dado que el único modo soportado es el de 32 bits.
* Además he añadido un par de funciones a la mod_wm para activar y desactivar el salvapantallas.
* He eliminado la mod_blendop de la compilación por defecto, dado que no funciona.
* He añadido una función llamada map_colormod_set que hace las veces de blendop_tint: aplica un factor de escala a la forma en que se muestran los colores de un gráfico en particular.
* Necesito una documentación...

excelente los nuevos aportes...


tenemos una duda...


mirando g_video.c (linea 277)

creo que no es necesario estar destruyendo la ventana y el renderizador cada vez que llamamos a set_mode

eso crearia memory leaks y haria mas inestable el juego



1. solo se crea un solo renderizador y una sola ventana..(al iniciar el motor)
2. sdl_renderer no contiene atributos de dimension o medidas y demas por lo tanto para que destruirlo?
3. la ventana contiene esos atributos por lo tanto cada vez que cambia el modo cambiar los atributos de la ventana sin destruirla


SDL_SetWindowSize(Window, ScreenSizeX, ScreenSizeY);

y el clasico para modificar el borde

SDL_SetWindowBordered(SDL_Window* window, SDL_bool bordered)

las demas funciones SET para modificar la ventana

https://wiki.libsdl.org/CategoryVideo (https://wiki.libsdl.org/CategoryVideo)

internamente sdl2 tiene vinculado el renderer por lo tanto se modifica la ventana === se modifica el renderer automaticamente


para la creacion del renderer siempre se crearia a la primera con los atributos
mas usados   SDL_RENDERER_ACCELERATED

asi que en resumen se crearia la ventana y el renderer una sola vez en la funcion setmode indicando con un flag que ya se inicializo(inclusive si el usuario carga un fpg antes del setmode no pasaria nada que es el comportamiento normal de bennu
cargar el setmode/gr_init al inicio del libvideo--module_initialize

y cada vez que el juego llame al setmode solo se actualizaria la ventana con los nuevos atributos sin destruirla


-se ganaria en velocidad del juego(ya que sdl2 destruye todas las texturas asociadas al renderer con la lentitud que eso supone cargar y descargar texturas en un juego)
-no habrian crash en el juego porque no habrian memory leaks
-no aparecerian errores en pixtudio de textura no valida


hemos estado ocupados ya te echamos una mano....  y te pasamos el g_video.c    con el fix
Yo uso mucho el blendop para hacer gráficos "destellar" y otros efectos bastante comunes en los juegos , planeas algún reemplazo?

Enviado desde mi Nexus 7 mediante Tapatalk

Título: Re: PixTudio progress updates
Publicado por: l1nk3rn3l en Octubre 29, 2015, 03:11:44 am
excelente avance...


en modo sugerencia seria incluir .........   1 fuente de 32bits .....        por defecto usando la herramienta bin2c o bin2h

para que se escriban textos como el normal bennu  .. es una sugerencia


si podemos colaborarte de alguna forma, estamos disponibles

Título: Re: PixTudio progress updates
Publicado por: josebita en Octubre 29, 2015, 09:50:13 am
Yo uso mucho el blendop para hacer gráficos "destellar" y otros efectos bastante comunes en los juegos , planeas algún reemplazo?

Enviado desde mi Nexus 7 mediante Tapatalk
De momento la he quitado de la compilación por defecto dado que no funciona. Mi intención es tener algo similar, pero SDL no permite hacerlo por GPU...
Voy a mirarlo pero, según la wiki, los blendops no funcionan en 32bits. Si hay suerte y la información de la wiki está desactualizada, puede que conseguir que funcione sea fácil, pero si no, pues llevará más tiempo...
[Edito] Pues no, mira, los blendops no están soportados en 32bits, así que no hay solución inmediata.

excelente avance...


en modo sugerencia seria incluir .........   1 fuente de 32bits .....        por defecto usando la herramienta bin2c o bin2h

para que se escriban textos como el normal bennu  .. es una sugerencia


si podemos colaborarte de alguna forma, estamos disponibles
Sería lo suyo, sí. Si tenéis ganas de poneros a ello y me podéis mandar un parche, os lo agradecería.
De todas formas, mi intención es añadir soporte nativo para fuentes TTF mediante algo como ésto (https://github.com/nothings/stb/blob/master/stb_truetype.h) (que es muy ligero) o quizás SDL_ttf (https://www.libsdl.org/projects/SDL_ttf/) (que es más completo).
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 10, 2015, 01:33:09 pm
Por teneros un poco al día:
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 10, 2015, 02:07:35 pm
Por cierto, Javis, lo que sí se soporta es el additive blending, además del alpha blending normal.
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 10, 2015, 03:44:58 pm
Ya que estaba mirando cosas, me he puesto con la fuente del sistema, que buena falta le hacía.
El commit 3c07cd5 (https://bitbucket.org/josebagar/pixtudio/commits/3c07cd58f57e5cb8c140579cdff1d5461aa6d8fc) arregla el problema con la fuente del sistema, que ya se vuelve a poder utilizar con normalidad.
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 11, 2015, 03:16:06 pm
Por cierto, Javis, lo que sí se soporta es el additive blending, además del alpha blending normal.
Muy bueno :)

Enviado desde mi Nexus 6 mediante Tapatalk

Título: Re: PixTudio progress updates
Publicado por: l1nk3rn3l en Noviembre 11, 2015, 03:42:05 pm
excelentes noticias...
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 12, 2015, 12:52:45 am
Cosas que he hecho hoy:
* El commit e4eeabf (https://bitbucket.org/josebagar/pixtudio/commits/e4eeabf9345a8ba4dc5f4d22248334d8b0b6d3cf) añade un ejemplo de cómo se muestran los cuatro tipos de blending soportados por PixTudio: B_NOCOLORKEY, B_ALPHA (alpha blending), B_ABLEND (additive blending) y B_MBLEND (module blending: blending como producto de los colores). El nuevo modo (B_MBLEND) no está soportado para las funciones xput y demás, sólo para mostrado en pantalla (aunque acabaré añadiendo soporte para esas funciones en algún momento).
Tenéis un vídeo con el funcionamiento de los distintos modos de funcionamiento aquí:
https://vimeo.com/145459848 (https://vimeo.com/145459848)
* El commit ea0f7ff (https://bitbucket.org/josebagar/pixtudio/commits/ea0f7ffa3eabb12b2406e72d787ff0d2061a5d0d) añade soporte para vídeos cuyo audio es mono (un único canal), además de vídeo estereo y mejora el manejo de buffer underruns en el audio.
* Me he dado cuenta de un pequeño "bug" en la fuente del sistema: el fondo de la fuente es negro, cuando debería ser transparente. Dado que la fuente del sistema es ahora de 32 bits, igual intento buscar alguna otra fuente monoespaciada mona.
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 14, 2015, 12:15:52 am
Venga, el commit 5b75111 (https://bitbucket.org/josebagar/pixtudio/commits/5b751115a4339ca58dc9b77b955a354e88604145) completa la transición a la librería de expresiones regulares TRE (http://laurikari.net/tre/). Es importante porque la anterior implementación tenía licencia GPL, lo cual no está permitido si quiero volver a dar soporte para iOS.
Hace algunas cosas chulas más que la anterior librería (permite hacer búsquedas aproximadas, además de búsquedas exactas). De momento esa funcionalidad no se puede usar desde PixTudio, pero todo llegará.

He probado la librería con los ejemplos de la wiki y parece funcionar bien, pero seguro que me dejo algo por el camino. He subido algún ejemplito un poco más completo en el git.
Lo que sí he cambiado es el comportamiento de regex_replace: la wiki dice que "\0 - \9 escape sequences are accepted in the replacement". Yo no hago eso. Si queréis hacer algo similar, debéis hacer mediante expresión regular.

Para un uso simple, podéis hacer, símplemente:
Código: [Seleccionar]
regex_replace("-", "Queso-Jamón", " y ");
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 16, 2015, 01:07:25 pm
Buenisimos avances! :D


animo con eso! ya me estan dando ganas de hacer la migracion!
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 16, 2015, 06:00:24 pm
Buenisimos avances! :D


animo con eso! ya me estan dando ganas de hacer la migracion!
Mil gracias por el interés.
Recuerda que todo lo que sea pintar a un mapa va más lento que en Bennu, que esos efectos te gustan mucho :)

Lo próximo será hacer que la librería de expresiones regulares y la mod_theoa funcionen en Android y luego le daré algo más de forma al debugger.

Cuando eso esté, me pondré con la nueva librería de sonido, imagino.
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 16, 2015, 08:57:51 pm
Recuerda que todo lo que sea pintar a un mapa va más lento que en Bennu, que esos efectos te gustan mucho :)


Es cierto, a que se debe que sea mas lento?

Aunque tengo entendido que Explosive Dinosaurs tambien renderiza scrolls en mapas, y consigue funcionar en OUYA a buena velocidad, asi que supongo que no debe ser tan preocupante. no?
Título: Re: PixTudio progress updates
Publicado por: panreyes en Noviembre 16, 2015, 09:05:24 pm
Lo de los scrolls a mapas es algo que se desechó hace mucho tiempo :)
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 16, 2015, 09:07:57 pm
Recuerda que todo lo que sea pintar a un mapa va más lento que en Bennu, que esos efectos te gustan mucho :)


Es cierto, a que se debe que sea mas lento?

Aunque tengo entendido que Explosive Dinosaurs tambien renderiza scrolls en mapas, y consigue funcionar en OUYA a buena velocidad, asi que supongo que no debe ser tan preocupante. no?
Básicamente el tema es que cuando dibujo cualquier cosa a un mapa, tengo que hacer lo mismo que hace bennu + copiar la textura actualizada de la RAM a la memoria de la tarjeta gráfica, lo cual no es muy rápido. Si lo haces de vez en cuando (durante la carga de recursos y esporádicamente), no hay mucho problema, pero generalmente no da para hacerlo a 60fps, ni nada que se le parezca.
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 18, 2015, 12:10:32 am
pregunta de ignorante. Porque no se puede dibujar directamente sobra la ram?


Si es muy complicado de explicar ignora la pregunta, yo soy un completo ignorante en el tema
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 18, 2015, 09:54:29 am
pregunta de ignorante. Porque no se puede dibujar directamente sobra la ram?


Si es muy complicado de explicar ignora la pregunta, yo soy un completo ignorante en el tema
Sobre la RAM sí puedo dibujar. Eso es lo que hace Bennu. Sobre la memoria de la tarjeta gráfica también se puede dibujar directamente con OpenGL/DirectX.

El problema es que yo no pinto directamente con OpenGL, sino mediante SDL, y estoy un poco limitado en lo que puedo hacer, así que de momento tengo que lo que tengo :) Si tuviera un blitter con OpenGL, probablemente podría hacerlo con shaders directamente.
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 18, 2015, 03:02:54 pm
Otra Pregunta:


Si Bennu puede dibujar sobre la ram (usando SDL), porque es que tu no puedes con pixtudio usando SDL?
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 18, 2015, 04:42:17 pm
Otra Pregunta:

Si Bennu puede dibujar sobre la ram (usando SDL), porque es que tu no puedes con pixtudio usando SDL?
Sobre la RAM sí puedo dibujar. [...]
:D
Ahora mismo scroll a mapa funciona, sólo que es mucho más lento de lo que debería.

Por clarificar un poco:
Lo que ocurre ahora mismo cuando pintas a un mapa (por scroll a mapa, las funciones de dibujo o lo que sea) es:
    * Se hace el mismo procedimiento que en Bennu para pintar por software.
    * Se copia el mapa resultante de la RAM del ordenador a la RAM de la tarjeta gráfica.
El problema con hacer esto segundo muchas veces es que es lento.

Pensándolo un poco se me ocurre que no lo estoy haciendo de forma tan óptima como es posible y se pueden ahorrar unas cuantas operaciones de copia.
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 18, 2015, 10:22:34 pm
Mira tú por dónde, tanto que has insistido, mañana voy a probar una vida cosa que debería funcionar.

[Edito] vida->cosa (el autocorrector)
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 19, 2015, 02:47:22 am
Mira tú por dónde, tanto que has insistido, mañana voy a probar una vida que debería funcionar.
:D

Enviado desde mi Nexus 6 mediante Tapatalk

Título: Re: PixTudio progress updates
Publicado por: emov2k4 en Noviembre 19, 2015, 05:27:09 pm
Hola comunidad, hace tiempo que no aparezco por estos lados y me encuentro con esta excelente noticia del PixTudio, espero pronto ver algo compilado para probar (en windows), solo dar animo a los que participan en el.  ;D ;D ;D ;D
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 20, 2015, 08:04:25 pm
Hola comunidad, hace tiempo que no aparezco por estos lados y me encuentro con esta excelente noticia del PixTudio, espero pronto ver algo compilado para probar (en windows), solo dar animo a los que participan en el.  ;D ;D ;D ;D
Gracias por los ánimos :)
Pixel ha subido algunos binarios para windows en el primer post de este hilo.

Venga, cosas que he hecho:
Creo que es todo.
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 20, 2015, 08:28:51 pm
Muy buenos cambios!!!


Citar
  • He hecho cambios a las rutinas de blitting para que la textura asociada a un gráfico se actualice sólo si hace falta cuando se va a pintar a la pantalla. Esto debería evitar un montón de actualizaciones innecesarias y hacer que los scrolls a mapas funcionen a la misma velocidad que en Bennu (guiño, guiño, codazo, codazo, Javis).



Ahora me has dado ganas de probar el juego con pixstudio!! D:


Muchas gracias!!! :D :D
Título: Re: PixTudio progress updates
Publicado por: elezeta en Noviembre 20, 2015, 09:03:57 pm
  • He hecho cambios a las rutinas de blitting para que la textura asociada a un gráfico se actualice sólo si hace falta cuando se va a pintar a la pantalla. Esto debería evitar un montón de actualizaciones innecesarias y hacer que los scrolls a mapas funcionen a la misma velocidad que en Bennu (guiño, guiño, codazo, codazo, Javis).

¡Genial! Nos viene de maravillas. Muy buen trabajo Joseba

Javis, !a probar![/list]
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 21, 2015, 12:03:24 am
No olvidéis reportarme los bugs aquí:
https://bitbucket.org/josebagar/pixtudio/issues?status=new&status=open
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 21, 2015, 01:41:58 am
Lo último por hoy:
El commit e1bd6e1 (https://bitbucket.org/josebagar/pixtudio/commits/e1bd6e118937e25e2c7b53c2b319f93e94a277ad) implementa GET_LOCALE para Android, que era la plataforma para la que me faltaba implementación (JNI es un dolor).

Cuando no se puede determinar el locale del sistema, la función GET_LOCALE() devuelve "(-_-)", porque me hace gracia el dibujito. Si alguien encuentra algo más gracioso en ANSI con 5 caracteres y un "_" en medio, lo cambio :)
Título: Re: PixTudio progress updates
Publicado por: panreyes en Noviembre 26, 2015, 12:30:45 am
@Javis: No sé dónde lo dijiste, pero te he armado una pixplantilla actualizada con PixTudio para ver si te puedo echar una mano:
http://www.panreyes.com/pixplantilla.rar
Título: Re: PixTudio progress updates
Publicado por: JaViS en Noviembre 26, 2015, 03:31:07 am
@Javis: No sé dónde lo dijiste, pero te he armado una pixplantilla actualizada con PixTudio para ver si te puedo echar una mano:
http://www.panreyes.com/pixplantilla.rar
Buenisimo!!! Muchas gracias :D

Enviado desde mi Nexus 6 mediante Tapatalk

Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 26, 2015, 09:29:23 am
Mil gracias, Pixel!
Título: Re: PixTudio progress updates
Publicado por: panreyes en Noviembre 26, 2015, 09:38:26 am
De nada. Si me sabe mal no tener algo mejor preparado, que lo tengo en la cabeza y nunca me pongo xD
Título: Re: PixTudio progress updates
Publicado por: josebita en Noviembre 26, 2015, 01:01:20 pm
A ver si en algún momento me vengo arriba y monto una web simplona con información y cómo compilar y tal...
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 22, 2015, 01:54:53 pm
He separado unos cuantos post del hilo FAQ dado que en realidad informan de avances y los he puesto en este nuevo hilo.

Escribiré un post más grande con algo de información de los últimos cambios, pero adelanto un par:
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 22, 2015, 03:41:47 pm
He añadido una función nueva a mod_wm:
    messagebox(int tipo, string título, string mensaje);
Sirve para mostrar mensajes modales de error/información.
"tipo" puede ser cualquiera de las siguienes constantes nuevas:
Si SDL no puede crear el mensaje como ventana de advertencia el mensaje de error se mostrará por la salida de error de la consola (stderr).
Título: Re:Diario de desarrollo
Publicado por: JaViS en Diciembre 22, 2015, 04:00:56 pm
^_^
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 23, 2015, 04:02:11 pm
El commit f5eee19 (https://bitbucket.org/josebagar/pixtudio/commits/f5eee195a076a4c9aba5ebc0268b54748608bc4c) añade una nueva variable global
Código: [Seleccionar]
BYTE SCALE_QUALITY;y dos nuevas constantes:
Código: [Seleccionar]
BYTE SCALE_NEAREST=0;
BYTE SCALE_LINEAR=1;

Estableciendo esa variable al valor deseado antes de hacer un set_mode establece el tipo de escalado a usar y, por defecto se usa escalado lineal, que entiendo es lo que alguien que no sepa de qué va el tema espera.
Tengo que probarlo en Android, eso sí.

La imagen de la izquierda usar escalado lineal y la de la derecha nearest-neighbour:
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3317)

Momia, he metido el ejemplo que me pasaste al repositorio (incluído el gráfico de Invento-Man). ¿Puedo dejarlo o lo quito?.

[Edito] También he hecho que PixTudio sólo trate de leer mediante la librería zlib archivos que estén comprimidos mediante gzip. Hasta ahora los ficheros siempre se trataban de cargar mediante zlib primero y creo que eso provocaba fallos en la lectura de ciertos recursos.
Título: Re:Diario de desarrollo
Publicado por: La momia que fuma en Diciembre 27, 2015, 04:21:23 pm
Momia, he metido el ejemplo que me pasaste al repositorio (incluído el gráfico de Invento-Man). ¿Puedo dejarlo o lo quito?


No problem!


Queda un poco raro que el ejemplo lleve un sprite a boleo de un juego de hace...¿10 años*? (Buf, el tiempo no para...) pero bueno xD (Si Pixstudio tuviese logo os quedaba guay para el ejemplo)


En todo caso un placer que os sea útil el ejemplo/gráfico


Animo con el proyecto, ya flipé con las primeras versiones y cada vez pinta mejor!


*En realidad es un recoloreado/resombreado relativamente reciente del sprite original (solo ese frame) que hice una tarde tonta que me aburría...ese es todo el trabajo que he hecho en Invento-Fighting en todos estos años desde la última versión xD
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 27, 2015, 08:40:57 pm
Buenas!
Alguna pequeña guia de como compilar el codigo fuente?, me interesan estos ultimos avances.


Saludos!
Título: Re:Diario de desarrollo
Publicado por: panreyes en Diciembre 27, 2015, 11:46:52 pm
A falta de datos exactos de cómo hacerlo, te dejo aquí binarios para Windows actualizados ahora mismo:
https://www.dropbox.com/s/rrbwpdujy65w2g3/pixtudio-win32.zip?dl=0
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 28, 2015, 12:13:01 am
Momia, he metido el ejemplo que me pasaste al repositorio (incluído el gráfico de Invento-Man). ¿Puedo dejarlo o lo quito?
No problem!
¡Mil gracias!
Si Pixstudio tuviese logo os quedaba guay para el ejemplo
Hombre, pues ya que lo mencionas... XD
Tengo que conseguir uno, sí. Además tengo que montar una pequeña web con instrucciones y documentación (el dominio (http://pixtudio.org) lo tengo hace tiempo). Pero vamos, que un iconito que pueda usar me vendría genial :D


Buenas!
Alguna pequeña guia de como compilar el codigo fuente?, me interesan estos ultimos avances.

Saludos!
Entiendo que te refieres en Windows.
Como resumen:
Instala y actualiza Mingw-w64, Mingw-w32 y Msys2 mediante las intrucciones de aquí: https://msys2.github.io/
En el entorno de 32 bits, instala SDL-2.0.3, OpenAL-soft 1.7.0, SDL_mixer-2.0.3, libpng, zlib, libtre (deberían estar disponibles mediante pacman).
Pero bueno, pondré instrucciones actualizadas cuando las tenga; mientras tanto usa los binarios de Pixel (¡mil gracias!).
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 28, 2015, 05:53:17 pm
El commit 7237d3d (https://bitbucket.org/josebagar/pixtudio/commits/7237d3db995d0f78b1a797edc0c1ea7eae18ede3) añade una implementación de las funcione BASENAME y DIRNAME a mod_file que, si no me equivoco, no estaban implementadas. (Decidme que no lo están, por favor, decídmelo)
Ambas funciones se basan directamente en las rutinas de C (http://linux.die.net/man/3/basename) y, por tanto, se deben comportar exactamente igual que ellas.

También he añadido una implementación de memory_total y memory_free (esta última aún no la he subido) para OS X e iOS. Tengo que darle alguna vuelta aún, porque estas funciones están básicamente rotas en cualquier ordenador de hoy día (por ser PixTudio/Bennu un programa de 32bits).
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 28, 2015, 07:17:14 pm
Pixel muchas gracias por subirlo compilado.

Josebita , hay planes para añadir alguna funcion de input?
Algo como en basic,que escribias:

Input "";&variable

Un saludo
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 29, 2015, 12:26:03 am
Pixel muchas gracias por subirlo compilado.

Josebita , hay planes para añadir alguna funcion de input?
Algo como en basic,que escribias:

Input "";&variable

Un saludo
Pues no tenía nada pensado, para qué te voy a mentir. La cosa es que no sé muy bien qué aporta eso en el contexto de un juego...
Título: Re:Diario de desarrollo
Publicado por: Erkosone en Diciembre 29, 2015, 05:38:10 am
- el chat de cualquier juego en linea.
- el tipico "Escriba su nombre" en una aventura RPG.


Sirve para muchas cosillas, no es lo frecuente en general pero en algunos tipos de juego es un imprescindible.
Realmente con algo muy muy sencillo ya sirve, yo lo veo tambien muy interesante, por ejemplo he visto en algunas librerías super pequeñas de java que crean como un set de pocas funciones que hace:


1 limpiar el buffer de teclado.
2 obtener el buffer de teclado.


Osea que tu vas escribiendo y el texto se va quedando almacenado en un buffer, ni se presenta en pantalla ni nada de nada, y cuando quieres ver que hay en el buffer solo tienes que pintarlo en pantalla.


Una versión super reducida con esas dos funciones que os parece?


Por cierto Joseba muchos animos con este proyecto!
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 29, 2015, 10:35:50 am
Algo así no estaría mal, Erkosone, pero yo había entendido que lo que quería Goku Jr era soportar entrada desde la consola.

De todas formas, lo que tú comentas se debería poder hacer ya desde código Bennu/PixTudio, ¿no?.
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 29, 2015, 10:45:05 am
Algo así no estaría mal, Erkosone, pero yo había entendido que lo que quería Goku Jr era soportar entrada desde la consola.

De todas formas, lo que tú comentas se debería poder hacer ya desde código Bennu/PixTudio, ¿no?.


Exactamente me referia a lo que dice Erkosone xD
y si ,si se puede hacer a base de codigo,pero creo recordar que habia que currarse unas funciones un poco engorrosas
mas que nada te lo comentaba por que hace poco estube jugueteando con Darkbasic que lo tenia por aqui en un cd.he incluida esa funcion, y me ice una pequeña aventura conversacional xDD


Saludos
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 29, 2015, 11:40:23 pm
Siguiendo un poco con la línea de lo que decía del motor de tiles en el hilo del FAQ, quizás sea bueno hacer una función en Bennu/PixTudio que haga algo así e incluirla por defecto con PixTudio.
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 30, 2015, 12:36:31 am
El commit 0902b7c (https://bitbucket.org/josebagar/pixtudio/commits/0902b7c276b8e1b7aeb5d146abf2748de8f1e161) añade las siguientes funciones a mod_math (por sugerencia de Javis):
Código: [Seleccionar]
int ROUND(float VAL);
int CEIL(float VAL);
int FLOOR(float VAL);
He dejado un pequeño ejemplo de uso aquí (https://bitbucket.org/josebagar/pixtudio/src/0902b7c276b8e1b7aeb5d146abf2748de8f1e161/examples/15_rouding.prg?at=bigmap&fileviewer=file-view-default), aunque son bastante evidentes de usar.
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 30, 2015, 12:47:53 pm
Buenas
he estado probando los Message box, y aunque los defina del tipo, error,aviso, o informacion,la ventana del mensaje es exactamente igual.
Es normal? o lo estoy haciendo mal..


Código: [Seleccionar]
messagebox(MESSAGEBOX_ERROR,"error","bla bla bla");
Saludos


Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 30, 2015, 03:38:59 pm
Buenas
he estado probando los Message box, y aunque los defina del tipo, error,aviso, o informacion,la ventana del mensaje es exactamente igual.
Es normal? o lo estoy haciendo mal..


Código: [Seleccionar]
messagebox(MESSAGEBOX_ERROR,"error","bla bla bla");
Saludos
Luego te contesto mejor (a ver si saco incluso algunas capturas), pero para la respuesta, dime: ¿qué SO utilizas?
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 30, 2015, 03:56:51 pm
Buenas Josebita
Windows 10,el tema esque todas las ventanas son iguales,muestran titulo,texto y un boton de ok,si eso cuando salga de currar pongo yo unas capturas tambien.

Saludos
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 30, 2015, 04:23:08 pm

Gracias por probarlo, por cierto, que no te he dicho nada :)

Luego lo pruebo en el resto de sistemas operativos (Linux, Windows y Android) pero te pongo lo que ocurre en OS X, que es lo que tengo delante ahora mismo:

Mensaje informativo:
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3321)
Mensaje de alerta:
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3323)
Mensaje de error:
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3325)
Como ves, no hay diferencia apreciable entre el mensaje informativo y el de alerta, pero he estado indagando en el código y en la documentación de Apple y es el comportamiento normal del sistema.
En la documentación de Apple (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSAlert_Class/#//apple_ref/c/tdef/NSAlertStyle) dice (las negritas son mías):
Citar
Discussion
Currently, there is no visual difference between informational and warning alerts. You should only use the critical (or “caution”) alert style if warranted, as specified in the “Alerts” chapter in OS X Human Interface Guidelines (https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/OSXHIGuidelines/index.html#//apple_ref/doc/uid/20000957).

De un vistazo rápido al código SDL (se me podría estar pasando algo, pero todo parece coherente) los niveles de alerta se están estableciendo bien.


Pero mándame los pantallazos de Windows, no sea que ahí sí esté ocurriendo algo. Lo revisaré porsiaca.
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 30, 2015, 04:44:24 pm
Buenas Josebita
Windows 10,el tema esque todas las ventanas son iguales,muestran titulo,texto y un boton de ok,si eso cuando salga de currar pongo yo unas capturas tambien.

Saludos
No lo he probado en otros SS.OO., pero he estado revisando el código para Windows, Linux, Android e iOS y me da la impresión de que el valor de las flags (el tipo de mensaje) se ignora en todos los sistemas operativos que he mirado y no sean OS X, sí.
De todas formas, en el código aparecen "TODO"s que indican que en algún momento se implementará, de forma que no está de mal tenerlo...
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 30, 2015, 05:17:27 pm
Vamos que aun no está implementando en sdl ,no pasa nada,are pruebas de las novedades,con lo que alcance mi "poco" conocimiento programador xd

Saludos
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 30, 2015, 10:09:33 pm
Buenas,aqui te dejo las pantallas Josebita

(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3327)
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3329)
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3331)

 :-\

Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 30, 2015, 11:44:39 pm
Joder, qué cosa más fea XD

Había visto los mensajes de Linux y OS X, pero no el de Windows.
¿Alguna sugerencia?
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 30, 2015, 11:56:50 pm
Joder, qué cosa más fea XD

Había visto los mensajes de Linux y OS X, pero no el de Windows.
¿Alguna sugerencia?


Sugerencia?.. umm si es posible estaria bien que se le pudiesen añadir mas botones a los Messagebox, tipo cancelar,reintentar,aceptar, y por pedir tambien,que saliera el tipico icono como en OSX,aunque creo que todo esto no es posible,por lo que has comentado antes. XD


Saludos
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 31, 2015, 12:35:31 am
He creado un prototipo de página web. De momento lo único que vale para algo son las instrucciones para compilar PixTudio desde código fuente en Windows desde cero.
Aquí la tenéis:
http://pixtudio.org/ (http://pixtudio.org/)



Joder, qué cosa más fea XD

Había visto los mensajes de Linux y OS X, pero no el de Windows.
¿Alguna sugerencia?


Sugerencia?.. umm si es posible estaria bien que se le pudiesen añadir mas botones a los Messagebox, tipo cancelar,reintentar,aceptar, y por pedir tambien,que saliera el tipico icono como en OSX,aunque creo que todo esto no es posible,por lo que has comentado antes. XD


Saludos
Bueno, veré qué puedo hacer... Es posible que pueda hacer algo, aunque no es seguro.
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Diciembre 31, 2015, 08:01:11 am
He creado un prototipo de página web. De momento lo único que vale para algo son las instrucciones para compilar PixTudio desde código fuente en Windows desde cero.
Aquí la tenéis:
http://pixtudio.org/ (http://pixtudio.org/)



Joder, qué cosa más fea XD

Había visto los mensajes de Linux y OS X, pero no el de Windows.
¿Alguna sugerencia?


Sugerencia?.. umm si es posible estaria bien que se le pudiesen añadir mas botones a los Messagebox, tipo cancelar,reintentar,aceptar, y por pedir tambien,que saliera el tipico icono como en OSX,aunque creo que todo esto no es posible,por lo que has comentado antes. XD


Saludos
Bueno, veré qué puedo hacer... Es posible que pueda hacer algo, aunque no es seguro.

Genial las instrucciones para compilar!,mil gracias!!
Y en cuanto a lo otro,no es que corra prisa,ni que en principio lo vaya a utilizar mucho,pero ya viste lo feo que sale xd
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Diciembre 31, 2015, 04:37:03 pm
Felicitaciones al equipo por los avances y mejoras al proyecto! se ve muy bien!
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 01, 2016, 12:23:02 pm
Felicitaciones al equipo por los avances y mejoras al proyecto! se ve muy bien!
¡Muchas gracias!
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 02, 2016, 01:03:50 am
Felicitaciones al equipo por los avances y mejoras al proyecto! se ve muy bien!
¡Muchas gracias!

a uds. por mantener viva la comunidad y por todo lo demas... ;)
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 03, 2016, 02:20:07 pm
Buenas
Josebita,tengo varios problemas al intentar compilar el src(lo se ya me lo compilo pixel,pero me apetecía trastear xd)
Sigo la guia que has puesto,y se me descargan todas las dependencias bien,salvo la de la mikmod,que me dice algo asi como que no se encuentra la ubicación (ahora no te lo puedo decir seguro,que ando con el movil)

Y claro al hacer cc=gcc make,empieza a compilar,pero me da error,en la linea de un archivo.

Tambien decir,que he intentado compilar desde OSX,(un mac air) a "pelo" y el pxtb si me lo compila(aunque salen un monton de lineas de warning),y lo consigo ejecutar y todo(me sale lo de pixtudio blender y tal) pero el pxtp nada.

Un saludo
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 03, 2016, 08:32:43 pm
Hombre, voy a necesitar que concretes :)
No estaré en Madrid hasta el día siete, pero lo probaré a la vuelta, no sea que las instrucciones no estén correctas...
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 03, 2016, 09:42:52 pm
Lo se jejej luego te pongo exactamente lo que me sale
Saludos y gracias!
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 06, 2016, 11:29:22 am
Buenas
aqui te adjunto lo que me sale Josebita.


Al descargar las dependencias..
(http://i68.tinypic.com/okxsf9.png)
Al intentar compilar
(http://i68.tinypic.com/34gvcq1.png)
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Enero 07, 2016, 02:07:49 am
Bueno, el tema del "input" se puede hacer desde código Fenix/Bennu desde hace tiempo con muy poquito código. Lo vuelvo a poner como referencia:

Código: [Seleccionar]
loop
        letra=ascii;
        if (letra!=letra_ant)
            switch (letra)
                //case 0: end
                case 8:  //borrar
                    if (editor_nombre_mapa!="")
                        editor_nombre_mapa=substr(editor_nombre_mapa,0,-1);
                    end
                end
                //teclas que no deben hacer nada
                case 9:  //tabulador
                end
                case 13: //intro
                    break;
                end
                //por defecto debe escribir
                default:
                    editor_nombre_mapa=editor_nombre_mapa+chr(letra);
                end
            end
        end
        letra_ant=letra;
        frame;
    end

Sólo hay que añadir otras teclas especiales que se quieran añadir, pero con ASCII ya se tiene cubierto el cupo de todas las letras (mayúsculas, minúsculas y acentuadas), números y signos de puntuación disponibles en teclado y tabla ASCII. Como mucho hay que añadir al principio (fuera del loop):
while (ascii != 0) frame; end
para evitar que se añada la última tecla que se estaba pulsando antes de llegar al trozo de código.

Por cierto ¿Pixtudio será compatible con Wiz/Caanoo? En caso afirmativo, podría intentar el port a GP2X, ya que aun tengo el SDK que usaba con Bennu "funcionando" (tengo que compilar la última versión de Bennu estable aun ^^U).
Título: Re:Diario de desarrollo
Publicado por: panreyes en Enero 07, 2016, 09:46:40 am
Por cierto, esto me recuerda que en PiX Juegos, Carles hizo un sistema de input adaptado para gamepads :)

https://code.google.com/p/pixjuegos/source/browse/trunk/common-src/input_text.pr-

Pd: Aclarando más: mola mucho si utilizas el sistema de gamepads de PiXJuegos. Sino, es difícil xD
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Enero 07, 2016, 11:32:41 am
¡¡Reportado por spam!! :D

Leido así, por encima, es la típica ventana con teclado (aunque para 4 jugadores) ¿no? :)
Yo desarrollé hace poco una similar, pero incluía una lista de ficheros a la izquierda... y sigue sin ser cómoda para el input de texto. Al menos la tuya incorpora pantalla táctil, yo aun no se la he añadido y no sé si hacerlo, porque mis botones son muy pequeños :/
También está el sistema que se "inventaron" para GP2X/Wiz que combinaba el dpad y los 4 botones: con el dpad seleccionas entre 9 grupos de 4 letras, y con los botones una de ellas, y usas L, R y creo que select, para cambiar toto el set por mayúsculas, minúsculas y demás. Es bastante cómodo una vez te acostumbras, aunque cuesta :P
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 07, 2016, 12:03:17 pm
Mil gracias por las imágenes.
Te falta el GCC, lo cual no debería pasar... Lo reviso y te cuento.
Buenas
aqui te adjunto lo que me sale Josebita.


Al descargar las dependencias..
(http://i68.tinypic.com/okxsf9.png)
Al intentar compilar
(http://i68.tinypic.com/34gvcq1.png)
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 07, 2016, 01:04:29 pm
Bueno, el tema del "input" se puede hacer desde código Fenix/Bennu desde hace tiempo con muy poquito código. Lo vuelvo a poner como referencia:

Código: [Seleccionar]
loop
        letra=ascii;
        if (letra!=letra_ant)
            switch (letra)
                //case 0: end
                case 8:  //borrar
                    if (editor_nombre_mapa!="")
                        editor_nombre_mapa=substr(editor_nombre_mapa,0,-1);
                    end
                end
                //teclas que no deben hacer nada
                case 9:  //tabulador
                end
                case 13: //intro
                    break;
                end
                //por defecto debe escribir
                default:
                    editor_nombre_mapa=editor_nombre_mapa+chr(letra);
                end
            end
        end
        letra_ant=letra;
        frame;
    end

Sólo hay que añadir otras teclas especiales que se quieran añadir, pero con ASCII ya se tiene cubierto el cupo de todas las letras (mayúsculas, minúsculas y acentuadas), números y signos de puntuación disponibles en teclado y tabla ASCII. Como mucho hay que añadir al principio (fuera del loop):
while (ascii != 0) frame; end
para evitar que se añada la última tecla que se estaba pulsando antes de llegar al trozo de código.

Por cierto ¿Pixtudio será compatible con Wiz/Caanoo? En caso afirmativo, podría intentar el port a GP2X, ya que aun tengo el SDK que usaba con Bennu "funcionando" (tengo que compilar la última versión de Bennu estable aun ^^U).


Muchas gracias drumpi!
el problema esque no se como utilizarlo XD
una ayudita rapida :D:D


Saludos
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 07, 2016, 01:19:44 pm
Mil gracias por las imágenes.
Te falta el GCC, lo cual no debería pasar... Lo reviso y te cuento.
Buenas
aqui te adjunto lo que me sale Josebita.


Al descargar las dependencias..
(http://i68.tinypic.com/okxsf9.png)
Al intentar compilar
(http://i68.tinypic.com/34gvcq1.png)
De nada josebita!


Me pone que esta instalado.
puede ser ue tenga que configurr el path del sistema?
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 07, 2016, 02:17:14 pm
Algo he visto:
Debes abrir la consola de nombre "MinGW-w64 Win32 Shell" (es un poco confuso; ese es el entorno para compilar programas de 32 bits. Está en la web, pero lo voy a poner en negrita :) ). Fíjate que una instalación limpia te añade tres iconos al menú de inicio y tú tienes abierto el que pone "MSYS2 Shell":
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3343)
Por lo demás, acabo de comprobar que las instrucciones de compilación funcionan en una máquina virtual con Windows 10 de las proporcionadas por Microsoft aquí (https://dev.windows.com/en-us/microsoft-edge/).
No me aparece ningún problema con la mikmod, así que te recomendaría que pruebes a desinstalarla y volverla a instalar.
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 07, 2016, 02:30:10 pm
Compilado perfectamente!
Era eso,aunque me sigue dando el mismo problema lo de la mikmod.
me ha creador los dos ejecutables  en la carpeta Qtcreator,aunqe obviamente faltan las dll.


Mil gracias!
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 07, 2016, 02:40:07 pm
Compilado perfectamente!
Era eso,aunque me sigue dando el mismo problema lo de la mikmod.
me ha creador los dos ejecutables  en la carpeta Qtcreator,aunqe obviamente faltan las dll.


Mil gracias!
Si la instalación de MSYS2 es limpia, prueba a borrarla y volver a instalar. Puede ser que te haya pasado algo raro con la cache del gestor de paquetes o algo así. No te creas que soy un gran expero en el gestor de paquetes éste.

Sobre las DLLs: siempre y cuando ejecutes pixtudio desde mingw no vas a tener problema. Si lo ejecutas desde fuera, tendrás que copiar las DLLs necesarias desde la instalación de mingw a la carpeta donde los quieras. Es un poco engorro, pero sólo hay que hacerlo una vez...
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 07, 2016, 03:32:01 pm
He subido instrucciones de compilación para Ubuntu 15.10 a la web y he puesto en negrita que se debe usar el entorno de compilación de 32 bits en windows.

[Edito] También he subido instrucciones para Fedora 23
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Enero 08, 2016, 02:11:51 pm
Bueno, el tema del "input" se puede hacer desde código Fenix/Bennu desde hace tiempo con muy poquito código. Lo vuelvo a poner como referencia:

Código: [Seleccionar]
loop
        letra=ascii;
        if (letra!=letra_ant)
            switch (letra)
                //case 0: end
                case 8:  //borrar
                    if (editor_nombre_mapa!="")
                        editor_nombre_mapa=substr(editor_nombre_mapa,0,-1);
                    end
                end
                //teclas que no deben hacer nada
                case 9:  //tabulador
                end
                case 13: //intro
                    break;
                end
                //por defecto debe escribir
                default:
                    editor_nombre_mapa=editor_nombre_mapa+chr(letra);
                end
            end
        end
        letra_ant=letra;
        frame;
    end

Sólo hay que añadir otras teclas especiales que se quieran añadir, pero con ASCII ya se tiene cubierto el cupo de todas las letras (mayúsculas, minúsculas y acentuadas), números y signos de puntuación disponibles en teclado y tabla ASCII. Como mucho hay que añadir al principio (fuera del loop):
while (ascii != 0) frame; end
para evitar que se añada la última tecla que se estaba pulsando antes de llegar al trozo de código.

Por cierto ¿Pixtudio será compatible con Wiz/Caanoo? En caso afirmativo, podría intentar el port a GP2X, ya que aun tengo el SDK que usaba con Bennu "funcionando" (tengo que compilar la última versión de Bennu estable aun ^^U).


Muchas gracias drumpi!
el problema esque no se como utilizarlo XD
una ayudita rapida :D :D


Saludos

Es fácil: este es el bucle principal de la caja de texto.
Una vez que se seleccione la caja de texto y esté activa, su proceso entra en este bucle, que lo que hace es leer una pulsación del teclado y convertir su valor al ASCII correspondiente (ojo, si se pulsa a, puede valer "a" o "A", dependiendo de si tienes pulsada la tecla mayúsculas, o incluso "á" o "Á" si antes habías pulsado la tilde; el comando "ascii" es la caña), y lo añade a una string (que yo he llamado "editor_nombre_mapa" en el ejemplo) (vease el default del switch).

El switch sirve para trabajar con carateres especiales (ASCII del 0 al 31), como en este caso, el 8 es el carácter ASCII especial para borrar, que elimina un caracter de la string (función SUBSTR).
O el 13, que es el retorno de carro, y lo que hace es salir del bucle (se supone que ya has terminado de escribir).
También está comentado el 9, que es el tabulador, que puedes añadir 4 espacios, 20 espacios, o salir del bucle y seleccionar otro elemento de GUI, ya lo que tu escribas en el case.

La parte difícil del código es lo de letra_ant, que existe para evitar la repetición de una letra por mantener el botón pulsado durante más de un frame.

Aparte de eso, es un código sencillo, y que debería formar parte de las rutinas básicas de código DIV, junto a la de detectar cuándo se ha pulsado un botón o el código del matamarcianos :D :D :D
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 11, 2016, 04:41:51 pm
Por teneros al día: últimamente estoy haciendo labores de limpieza del código, de forma que ahora mismo probablemente no compilará en ningún sitio que no sea mi ordenador :D
Por detallar algunas cosas:
Título: Re:Diario de desarrollo
Publicado por: JaViS en Enero 12, 2016, 09:36:14 pm
Por teneros al día: últimamente estoy haciendo labores de limpieza del código, de forma que ahora mismo probablemente no compilará en ningún sitio que no sea mi ordenador :D
Por detallar algunas cosas:
  • He eliminado muchos warnings de compilación (por diferencias de prototipo en gr_new_object, sobre todo, pero también en más sitios).
  • He movido el código de red de la fsock a una librería independiente, de forma que fsock (que ahora se llama mod_fsock y forma parte de la distribución estándar de PixTudio) ahora no es más que un binding con esa librería. Esto es interesante porque, como ya comenté, quiero que la mod_debug se utilice por red en lugar de desde la propia ventana del juego y quiero que use las mismas rutinas de red que la mod_fsock.
  • La variable SCALE_QUALITY que dice si se usa filtro lineal o no ahora se puede leer desde el entorno y no sólo desde el código.
  • He corregido un bug que hacía que no se tuviera en cuenta el valor de scale_resolution.
  • He reformateado todo el código (con clang-format (http://clang.llvm.org/docs/ClangFormat.html)) para que el estilo sea coherente. A Splinter le gusta un estilo distinto del que me gusta a mí y eso hacía que las partes del código que se han heredado de Bennu tuvieran un estilo y las nuevas otro, lo cual es horrible. Ahora todo el estilo de código es coherente.
  • He iniciado un pequeño experimento: voy a tratar de cambiar el sistema de compilado a CMake. Por ahora he subido un proyecto para pxtb y parece funcionar bien en Linux. La idea es cambiar a CMake completamente porque la verdad es que lo que tengo ahora mismo no me gusta nada.
Necesitamos una wiki para las nuevas variables

Enviado desde mi Nexus 6 mediante Tapatalk

Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 12, 2016, 11:09:01 pm
Necesitamos una wiki para las nuevas variables
Sí.
De hecho, una cosa que he hecho es subir la documentación de Bennu (en el nuevo formato que hizo Pixel) al Git:
https://bitbucket.org/josebagar/pixtudio/src/05949d2ce683dda99032e2c4a611e129a79091da/docs/web/docs/?at=bigmap
El tema es que la documentación sigue siendo de Bennu (no refleja los cambios que he ido haciendo) y que ahora mismo no es usable.

Está todo un poco a medias ahora mismo...
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 13, 2016, 10:32:08 am
Buenas!
Tengo un problema con la version android :


He empaquetado mi juego ,con el compilador de pixel,y lo he pasado a una tablet Samsung
y me salta un error de SDL y OpenAL

(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3352)

Saludos
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 13, 2016, 11:50:51 am
Buenas
Decir que la version creada con la plantilla,para Bennu,funciona sin problemas
No se a que se debe.


Saludos!
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 13, 2016, 12:48:10 pm
Buenas
Decir que la version creada con la plantilla,para Bennu,funciona sin problemas
No se a que se debe.

Saludos!
Te parecerá una tontería. pero me alegro de que te aparezca ese mensaje de error. Hasta ahora el programa habría cascado, sin más. Ahora por lo menos sabemos por qué es :)
Abre, por favor, el fichero bin/pixtudio-android/src/org/libsdl/app/SDLActivity.java y, en la línea 75 añade "openal", de forma que el método quede así:
Código: [Seleccionar]
    protected String[] getLibraries() {
        return new String[] {
            "mikmod",
            "SDL2",
            "SDL2_mixer",
            "theora",
            "openal",
            "bgdrtm",
            "main"
        };
    }
Eso debería ayudar.
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 13, 2016, 01:02:08 pm
Buenas
Decir que la version creada con la plantilla,para Bennu,funciona sin problemas
No se a que se debe.

Saludos!
Te parecerá una tontería. pero me alegro de que te aparezca ese mensaje de error. Hasta ahora el programa habría cascado, sin más. Ahora por lo menos sabemos por qué es :)
Abre, por favor, el fichero bin/pixtudio-android/src/org/libsdl/app/SDLActivity.java y, en la línea 75 añade "openal", de forma que el método quede así:
Código: [Seleccionar]
    protected String[] getLibraries() {
        return new String[] {
            "mikmod",
            "SDL2",
            "SDL2_mixer",
            "theora",
            "openal",
            "bgdrtm",
            "main"
        };
    }
Eso debería ayudar.


Buenas
Ahora me voi para el curro,intentare probarlo esta noche :D
un saludo y gracias
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 13, 2016, 02:18:00 pm
Necesitamos una wiki para las nuevas variables
Bueno, hay un pequeño embrión aquí:
https://pixtudio.org/docs/ (https://pixtudio.org/docs/)

Como digo, está todo muy a medias aún.

[Edito] Lo que sí habrá será una sección de diferencias con BennuGD
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 15, 2016, 12:21:07 pm
Buenas Josebita


Hice lo que dijeste y modifique la linea 75,y me tira un monton de errores.
Te los pongo aqui.
Espero que sea de ayuda.




Te los pongo en un txt,ya que son 100 errores XD



Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 15, 2016, 12:28:50 pm
Buenas Josebita


Hice lo que dijeste y modifique la linea 75,y me tira un monton de errores.
Te los pongo aqui.
Espero que sea de ayuda.




Te los pongo en un txt,ya que son 100 errores XD
¿Se te ha olvidado la coma después de "openal"?
Fíjate que quede como el texto que te dejé.
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 15, 2016, 12:37:16 pm
Pues tenias razon xD
Mil perdones!!
Ya compila,voi a ver si funciona en otra tablet..


Nada,ahora se cierra y no sale nada,vuelve al escritorio de android


Saludos
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 15, 2016, 01:55:00 pm
Pues tenias razon xD
Mil perdones!!
Ya compila,voi a ver si funciona en otra tablet..


Nada,ahora se cierra y no sale nada,vuelve al escritorio de android


Saludos
Voy a necesitar un logcat de cómo falla... Pero puede ser que la versión que PiXel compiló símplemente tuviera una versión de mod_theora con bugs que aún fallara.
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 15, 2016, 01:57:23 pm
Vale sin problemas,si me puedes decir como se hace,te lo pongo esta noche.
Saludos
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 15, 2016, 10:09:41 pm
Buenas!
Josebita aqui te dejo el logcat


Código: [Seleccionar]
I/ActivityManager(  289): Start proc org.fatball.plantilla for activity org.fatball.plantilla/.FATBALL: pid=1029 uid=10053 gids={1028}
V/ActivityManager(  289): ensureActivitiesVisible behind ActivityRecord{42420b00 org.fatball.plantilla/.FATBALL} configChanges=0x0
E/Trace   ( 1029): error opening trace file: No such file or directory (2)
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libmikmod.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libmikmod.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libmikmod.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libSDL2.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libSDL2.so 0x4202dbd8
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libSDL2_mixer.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libSDL2_mixer.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libSDL2_mixer.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libtheora.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libtheora.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libtheora.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libopenal.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libopenal.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libopenal.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libbgdrtm.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libbgdrtm.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libbgdrtm.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libmain.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libmain.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libmain.so 0x4202dbd8, skipping init
V/SDL     ( 1029): pixel format RGB_565
V/SDL     ( 1029): Window size:1280x752
I/SDL     ( 1029): SDL_Android_Init()
I/SDL     ( 1029): SDL_Android_Init() finished!
I/SDL/APP ( 1029): BennuGD init
I/SDL/APP ( 1029): Loading main.dcb from the APK...
I/ActivityManager(  289): Displayed org.fatball.plantilla/.FATBALL: +461ms
D/dalvikvm( 1029): GC_CONCURRENT freed 438K, 8% free 6118K/6599K, paused 13ms+5ms, total 39ms
D/dalvikvm( 1029): WAIT_FOR_CONCURRENT_GC blocked 15ms
D/dalvikvm( 1029): GC_CONCURRENT freed 518K, 9% free 6150K/6727K, paused 12ms+2ms, total 38ms
D/dalvikvm( 1029): WAIT_FOR_CONCURRENT_GC blocked 1ms
F/libc    ( 1029): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1042 (SDLThread)
I/DEBUG   (   77): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (   77): Build fingerprint: 'WonderMedia/wmid/wmid:4.1.1/JRO03H/_130108.1751:user/test-keys'
I/DEBUG   (   77): pid: 1029, tid: 1042, name: SDLThread  >>> org.fatball.plantilla <<<
I/DEBUG   (   77): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG   (   77):     r0 00000000  r1 5e358d8c  r2 ffff3b45  r3 ffff3b28
I/DEBUG   (   77):     r4 00000000  r5 5e3856c4  r6 00000000  r7 00000000
I/DEBUG   (   77):     r8 fffffe00  r9 00000000  sl 00000000  fp 5e5c2a80
I/DEBUG   (   77):     ip bee9dc14  sp 5e5c2a30  lr 400ce3b1  pc 5e2a5a4c  cpsr 60000010
I/DEBUG   (   77):     d0  545f444e415f454f  d1  554f4d5f45544155
I/DEBUG   (   77):     d2  5cd3cbd800000043  d3  5cd3cc0000000048
I/DEBUG   (   77):     d4  5ce67b0000000095  d5  5ce67b4000000096
I/DEBUG   (   77):     d6  5cd3caf000000097  d7  5cd3cb3000000098
I/DEBUG   (   77):     d8  0000000000000000  d9  0000000000000000
I/DEBUG   (   77):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   (   77):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   (   77):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   (   77):     d16 0000009b00000005  d17 0000000000010903
I/DEBUG   (   77):     d18 0000000000010903  d19 3f909fbf0fbe2b83
I/DEBUG   (   77):     d20 3fc94423aa13c190  d21 3fd94423aa13c190
I/DEBUG   (   77):     d22 3fa50df834a35cdd  d23 3fe41b2efdf9d41d
I/DEBUG   (   77):     d24 001e001e001e001e  d25 001e001e001e001e
I/DEBUG   (   77):     d26 ffffffffffffffff  d27 ffffffffffffffff
I/DEBUG   (   77):     d28 ffe5b533ffe5b533  d29 ffffffffffffffff
I/DEBUG   (   77):     d30 0000000000000000  d31 0000000000000000
I/DEBUG   (   77):     scr 20000010
I/DEBUG   (   77):
I/DEBUG   (   77): backtrace:
I/DEBUG   (   77):     #00  pc 0003ca4c  /data/data/org.fatball.plantilla/lib/libbgdrtm.so (gr_set_mode+472)
I/DEBUG   (   77):     #01  pc 0001f3ad  /system/lib/libc.so (getenv+4)
I/DEBUG   (   77):     #02  pc 0001b2d0  /data/data/org.fatball.plantilla/lib/libSDL2.so (SDL_InitSubSystem_REAL+352)
I/DEBUG   (   77):
I/DEBUG   (   77): stack:
I/DEBUG   (   77):          5e5c29f0  00000002
I/DEBUG   (   77):          5e5c29f4  fffffc5c
I/DEBUG   (   77):          5e5c29f8  00000000
I/DEBUG   (   77):          5e5c29fc  00000000
I/DEBUG   (   77):          5e5c2a00  00000000
I/DEBUG   (   77):          5e5c2a04  fffffe14
I/DEBUG   (   77):          5e5c2a08  5e3856c4
I/DEBUG   (   77):          5e5c2a0c  00000000
I/DEBUG   (   77):          5e5c2a10  00000000
I/DEBUG   (   77):          5e5c2a14  fffffe00
I/DEBUG   (   77):          5e5c2a18  00000000
I/DEBUG   (   77):          5e5c2a1c  400ce3b1  /system/lib/libc.so (getenv+8)
I/DEBUG   (   77):          5e5c2a20  5e34c8d1  /data/data/org.fatball.plantilla/lib/libbgdrtm.so
I/DEBUG   (   77):          5e5c2a24  ffff3b45
I/DEBUG   (   77):          5e5c2a28  df0027ad
I/DEBUG   (   77):          5e5c2a2c  00000000
I/DEBUG   (   77):     #00  5e5c2a30  00000020
I/DEBUG   (   77):          ........  ........
I/DEBUG   (   77):     #01  5e5c2a30  00000020
I/DEBUG   (   77):          5e5c2a34  00000005
I/DEBUG   (   77):          5e5c2a38  5e5c2a58
I/DEBUG   (   77):          5e5c2a3c  5df932d4  /data/data/org.fatball.plantilla/lib/libSDL2.so (SDL_InitSubSystem_REAL+356)
I/DEBUG   (   77):     #02  5e5c2a40  00000000
I/DEBUG   (   77):          5e5c2a44  00000000
I/DEBUG   (   77):          5e5c2a48  00000000
I/DEBUG   (   77):          5e5c2a4c  00000000
I/DEBUG   (   77):          5e5c2a50  00000000
I/DEBUG   (   77):          5e5c2a54  00000000
I/DEBUG   (   77):          5e5c2a58  00000000
I/DEBUG   (   77):          5e5c2a5c  00000000
I/DEBUG   (   77):          5e5c2a60  bd09d56a
I/DEBUG   (   77):          5e5c2a64  00000002
I/DEBUG   (   77):          5e5c2a68  5e3840d8
I/DEBUG   (   77):          5e5c2a6c  5e3840e0
I/DEBUG   (   77):          5e5c2a70  fffffc5c
I/DEBUG   (   77):          5e5c2a74  5e358d8c  /data/data/org.fatball.plantilla/lib/libbgdrtm.so
I/DEBUG   (   77):          5e5c2a78  5e383fd0  /data/data/org.fatball.plantilla/lib/libbgdrtm.so
I/DEBUG   (   77):          5e5c2a7c  5e5c2bbc
I/DEBUG   (   77):
I/DEBUG   (   77): memory near r1:
I/DEBUG   (   77):     5e358d6c 5e3427e4 5e3440d8 5e3440e0 5e3440e8  .'4^.@4^.@4^.@4^
I/DEBUG   (   77):     5e358d7c 400c236d 5e34a758 5e3477a8 00000000  m#.@X.4^.w4^....
I/DEBUG   (   77):     5e358d8c 00000000 00000000 00000000 400cde4d  ............M..@
I/DEBUG   (   77):     5e358d9c 400cdf65 400e88f5 5e28df68 5e28df3c  e..@...@h.(^<.(^
I/DEBUG   (   77):     5e358dac 400caa01 400ce315 400e88f9 400bd510  ...@...@...@...@
I/DEBUG   (   77):
I/DEBUG   (   77): memory near r5:
I/DEBUG   (   77):     5e3856a4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856b4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856c4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856d4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856e4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):
I/DEBUG   (   77): memory near fp:
I/DEBUG   (   77):     5e5c2a60 bd09d56a 00000002 5e3840d8 5e3840e0  j........@8^.@8^
I/DEBUG   (   77):     5e5c2a70 fffffc5c 5e358d8c 5e383fd0 5e5c2bbc  \.....5^.?8^.+\^
I/DEBUG   (   77):     5e5c2a80 5e5c4be0 5e290ad8 5e5c3bbc 2b2b5653  .K\^..)^.;\^SV++
I/DEBUG   (   77):     5e5c2a90 5e34b71a 5e358d8c 5e3840cc 5e358d8c  ..4^..5^.@8^..5^
I/DEBUG   (   77):     5e5c2aa0 5e3840c0 5e358d8c 5e3840b4 5e358d8c  .@8^..5^.@8^..5^
I/DEBUG   (   77):
I/DEBUG   (   77): memory near ip:
I/DEBUG   (   77):     bee9dbf4 bee9dddc bee9ddf6 bee9de0f bee9df5d  ............]...
I/DEBUG   (   77):     bee9dc04 bee9df64 bee9df81 bee9dfa9 bee9dfcc  d...............
I/DEBUG   (   77):     bee9dc14 00000000 00000010 0000b8d7 00000006  ................
I/DEBUG   (   77):     bee9dc24 00001000 00000011 00000064 00000003  ........d.......
I/DEBUG   (   77):     bee9dc34 40011034 00000004 00000020 00000005  4..@.... .......
I/DEBUG   (   77):
I/DEBUG   (   77): memory near sp:
I/DEBUG   (   77):     5e5c2a10 00000000 fffffe00 00000000 400ce3b1  ...............@
I/DEBUG   (   77):     5e5c2a20 5e34c8d1 ffff3b45 df0027ad 00000000  ..4^E;...'......
I/DEBUG   (   77):     5e5c2a30 00000020 00000005 5e5c2a58 5df932d4   .......X*\^.2.]
I/DEBUG   (   77):     5e5c2a40 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e5c2a50 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):
I/DEBUG   (   77): code around pc:
I/DEBUG   (   77):     5e2a5a2c e59f0630 e1a06009 e59f162c e1a0400a  0....`..,....@..
I/DEBUG   (   77):     5e2a5a3c e08f0000 e08f1001 e7980000 e5900014  ................
I/DEBUG   (   77):     5e2a5a4c e5900000 e3500000 e59f05e0 11a0408a  ......P......@..
I/DEBUG   (   77):     5e2a5a5c 11a06089 e7901001 e5911000 e3510005  .`............Q.
I/DEBUG   (   77):     5e2a5a6c 3a000004 e59f15f4 e08f1001 e7900001  ...:............
I/DEBUG   (   77):
I/DEBUG   (   77): code around lr:
I/DEBUG   (   77):     400ce390 e8bde7eb 461083f0 83f0e8bd 2d3d7805  .......F.....x=-
I/DEBUG   (   77):     400ce3a0 e7e8d1f0 00025180 a901b507 ffbaf7ff  .....Q..........
I/DEBUG   (   77):     400ce3b0 b510bd0e f7ff4604 88a0fcfd eb038863  .....F......c...
I/DEBUG   (   77):     400ce3c0 bd104000 00000000 43d0e92d 8b02ed2d  .@......-..C-...
I/DEBUG   (   77):     400ce3d0 ed9d4690 46998b08 46044619 ec534610  .F.....F.F.F.FS.
I/BootReceiver(  289): Copying /data/tombstones/tombstone_03 to DropBox (SYSTEM_TOMBSTONE)
W/InputDispatcher(  289): channel '42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
E/InputDispatcher(  289): channel '42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL (server)' ~ Channel is unrecoverably broken and will be disposed!
D/Zygote  (   80): Process 1029 terminated by signal (11)
D/dalvikvm(  289): GC_FOR_ALLOC freed 593K, 7% free 10066K/10759K, paused 75ms, total 80ms
W/InputDispatcher(  289): Attempted to unregister already unregistered input channel '42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL (server)'
I/WindowManager(  289): WINDOW DIED Window{42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL paused=false}
W/WindowManager(  289): Force-removing child win Window{42438780 SurfaceView paused=false} from container Window{42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL paused=false}
I/ActivityManager(  289): Process org.fatball.plantilla (pid 1029) has died.
W/ActivityManager(  289): Force removing ActivityRecord{42420b00 org.fatball.plantilla/.FATBALL}: app died, no saved state
W/WindowManager(  289): Failed looking up window
W/WindowManager(  289): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@424385c0 does not exist
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7707)
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7698)
W/WindowManager(  289):         at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:854)
W/WindowManager(  289):         at android.os.BinderProxy.sendDeathNotice(Binder.java:449)
W/WindowManager(  289):         at com.android.server.SystemServer.init1(Native Method)
W/WindowManager(  289):         at com.android.server.SystemServer.main(SystemServer.java:962)
W/WindowManager(  289):         at java.lang.reflect.Method.invokeNative(Native Method)
W/WindowManager(  289):         at java.lang.reflect.Method.invoke(Method.java:511)
W/WindowManager(  289):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
W/WindowManager(  289):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/WindowManager(  289):         at dalvik.system.NativeStart.main(Native Method)
I/WindowState(  289): WIN DEATH: null
W/WindowManager(  289): Failed looking up window
W/WindowManager(  289): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@42437330 does not exist
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7707)
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7698)
W/WindowManager(  289):         at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:854)
W/WindowManager(  289):         at android.os.BinderProxy.sendDeathNotice(Binder.java:449)
W/WindowManager(  289):         at dalvik.system.NativeStart.run(Native Method)
I/WindowState(  289): WIN DEATH: null
D/dalvikvm(  289): GC_FOR_ALLOC freed 287K, 9% free 10234K/11143K, paused 100ms, total 100ms
I/dalvikvm-heap(  289): Grow heap (frag case) to 10.227MB for 196628-byte allocation
D/dalvikvm(  289): GC_FOR_ALLOC freed 129K, 10% free 10296K/11399K, paused 102ms, total 102ms
V/ActivityManager(  289): ensureActivitiesVisible behind ActivityRecord{4223f9c0 com.android.launcher/com.android.launcher2.Launcher} configChanges=0x0
I/dalvikvm(  289): Jit: resizing JitTable from 4096 to 8192
D/dalvikvm(  289): GC_FOR_ALLOC freed 429K, 13% free 9998K/11399K, paused 133ms, total 145ms
V/TabletStatusBar(  386): setLightsOn(true)
W/InputMethodManagerService(  289): Got RemoteException sending setActive(false) notification to pid 1029 uid 10053
W/SocketClient(   76): write error (Broken pipe)
D/SurfaceFlinger(   79): About to give-up screen, flinger = 0x41bb2af0
V/LockPatternKeyguardView(  289): Set visibility on com.android.internal.policy.impl.LockPatternKeyguardView$4@422b9918 to 8388608
V/TransportControlView(  289): Create TCV com.android.internal.widget.TransportControlView@4236fb68
V/KeyguardViewManager(  289): KGVM: Set visibility on com.android.internal.policy.impl.KeyguardViewManager$KeyguardViewHost@4232abf8 to 6291456
D/dalvikvm(  289): GC_CONCURRENT freed 798K, 11% free 10190K/11399K, paused 13ms+5ms, total 117ms
D/dalvikvm(  289): WAIT_FOR_CONCURRENT_GC blocked 29ms
V/LockPatternKeyguardView(  289): Set visibility on com.android.internal.policy.impl.LockPatternKeyguardView$4@422b9918 to 8388608
I/TabletStatusBar(  386): DISABLE_CLOCK: yes
V/LockPatternKeyguardView(  289): Set visibility on com.android.internal.policy.impl.LockPatternKeyguardView$4@422b9918 to 8388608
D/dalvikvm(  386): GC_CONCURRENT freed 6681K, 46% free 8037K/14791K, paused 19ms+7ms, total 88ms
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 18, 2016, 05:07:40 pm
Pues no veo clara la causa del fallo (más allá de que ocurre en set_mode).
Déjame, por favor, que avance algo más y estabilice el código con el que estoy trabajando ahora para volver a probarlo. Ya sé que no es una gran solución... :/
Buenas!
Josebita aqui te dejo el logcat


Código: [Seleccionar]
I/ActivityManager(  289): Start proc org.fatball.plantilla for activity org.fatball.plantilla/.FATBALL: pid=1029 uid=10053 gids={1028}
V/ActivityManager(  289): ensureActivitiesVisible behind ActivityRecord{42420b00 org.fatball.plantilla/.FATBALL} configChanges=0x0
E/Trace   ( 1029): error opening trace file: No such file or directory (2)
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libmikmod.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libmikmod.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libmikmod.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libSDL2.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libSDL2.so 0x4202dbd8
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libSDL2_mixer.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libSDL2_mixer.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libSDL2_mixer.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libtheora.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libtheora.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libtheora.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libopenal.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libopenal.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libopenal.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libbgdrtm.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libbgdrtm.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libbgdrtm.so 0x4202dbd8, skipping init
D/dalvikvm( 1029): Trying to load lib /data/data/org.fatball.plantilla/lib/libmain.so 0x4202dbd8
D/dalvikvm( 1029): Added shared lib /data/data/org.fatball.plantilla/lib/libmain.so 0x4202dbd8
D/dalvikvm( 1029): No JNI_OnLoad found in /data/data/org.fatball.plantilla/lib/libmain.so 0x4202dbd8, skipping init
V/SDL     ( 1029): pixel format RGB_565
V/SDL     ( 1029): Window size:1280x752
I/SDL     ( 1029): SDL_Android_Init()
I/SDL     ( 1029): SDL_Android_Init() finished!
I/SDL/APP ( 1029): BennuGD init
I/SDL/APP ( 1029): Loading main.dcb from the APK...
I/ActivityManager(  289): Displayed org.fatball.plantilla/.FATBALL: +461ms
D/dalvikvm( 1029): GC_CONCURRENT freed 438K, 8% free 6118K/6599K, paused 13ms+5ms, total 39ms
D/dalvikvm( 1029): WAIT_FOR_CONCURRENT_GC blocked 15ms
D/dalvikvm( 1029): GC_CONCURRENT freed 518K, 9% free 6150K/6727K, paused 12ms+2ms, total 38ms
D/dalvikvm( 1029): WAIT_FOR_CONCURRENT_GC blocked 1ms
F/libc    ( 1029): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 1042 (SDLThread)
I/DEBUG   (   77): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (   77): Build fingerprint: 'WonderMedia/wmid/wmid:4.1.1/JRO03H/_130108.1751:user/test-keys'
I/DEBUG   (   77): pid: 1029, tid: 1042, name: SDLThread  >>> org.fatball.plantilla <<<
I/DEBUG   (   77): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG   (   77):     r0 00000000  r1 5e358d8c  r2 ffff3b45  r3 ffff3b28
I/DEBUG   (   77):     r4 00000000  r5 5e3856c4  r6 00000000  r7 00000000
I/DEBUG   (   77):     r8 fffffe00  r9 00000000  sl 00000000  fp 5e5c2a80
I/DEBUG   (   77):     ip bee9dc14  sp 5e5c2a30  lr 400ce3b1  pc 5e2a5a4c  cpsr 60000010
I/DEBUG   (   77):     d0  545f444e415f454f  d1  554f4d5f45544155
I/DEBUG   (   77):     d2  5cd3cbd800000043  d3  5cd3cc0000000048
I/DEBUG   (   77):     d4  5ce67b0000000095  d5  5ce67b4000000096
I/DEBUG   (   77):     d6  5cd3caf000000097  d7  5cd3cb3000000098
I/DEBUG   (   77):     d8  0000000000000000  d9  0000000000000000
I/DEBUG   (   77):     d10 0000000000000000  d11 0000000000000000
I/DEBUG   (   77):     d12 0000000000000000  d13 0000000000000000
I/DEBUG   (   77):     d14 0000000000000000  d15 0000000000000000
I/DEBUG   (   77):     d16 0000009b00000005  d17 0000000000010903
I/DEBUG   (   77):     d18 0000000000010903  d19 3f909fbf0fbe2b83
I/DEBUG   (   77):     d20 3fc94423aa13c190  d21 3fd94423aa13c190
I/DEBUG   (   77):     d22 3fa50df834a35cdd  d23 3fe41b2efdf9d41d
I/DEBUG   (   77):     d24 001e001e001e001e  d25 001e001e001e001e
I/DEBUG   (   77):     d26 ffffffffffffffff  d27 ffffffffffffffff
I/DEBUG   (   77):     d28 ffe5b533ffe5b533  d29 ffffffffffffffff
I/DEBUG   (   77):     d30 0000000000000000  d31 0000000000000000
I/DEBUG   (   77):     scr 20000010
I/DEBUG   (   77):
I/DEBUG   (   77): backtrace:
I/DEBUG   (   77):     #00  pc 0003ca4c  /data/data/org.fatball.plantilla/lib/libbgdrtm.so (gr_set_mode+472)
I/DEBUG   (   77):     #01  pc 0001f3ad  /system/lib/libc.so (getenv+4)
I/DEBUG   (   77):     #02  pc 0001b2d0  /data/data/org.fatball.plantilla/lib/libSDL2.so (SDL_InitSubSystem_REAL+352)
I/DEBUG   (   77):
I/DEBUG   (   77): stack:
I/DEBUG   (   77):          5e5c29f0  00000002
I/DEBUG   (   77):          5e5c29f4  fffffc5c
I/DEBUG   (   77):          5e5c29f8  00000000
I/DEBUG   (   77):          5e5c29fc  00000000
I/DEBUG   (   77):          5e5c2a00  00000000
I/DEBUG   (   77):          5e5c2a04  fffffe14
I/DEBUG   (   77):          5e5c2a08  5e3856c4
I/DEBUG   (   77):          5e5c2a0c  00000000
I/DEBUG   (   77):          5e5c2a10  00000000
I/DEBUG   (   77):          5e5c2a14  fffffe00
I/DEBUG   (   77):          5e5c2a18  00000000
I/DEBUG   (   77):          5e5c2a1c  400ce3b1  /system/lib/libc.so (getenv+8)
I/DEBUG   (   77):          5e5c2a20  5e34c8d1  /data/data/org.fatball.plantilla/lib/libbgdrtm.so
I/DEBUG   (   77):          5e5c2a24  ffff3b45
I/DEBUG   (   77):          5e5c2a28  df0027ad
I/DEBUG   (   77):          5e5c2a2c  00000000
I/DEBUG   (   77):     #00  5e5c2a30  00000020
I/DEBUG   (   77):          ........  ........
I/DEBUG   (   77):     #01  5e5c2a30  00000020
I/DEBUG   (   77):          5e5c2a34  00000005
I/DEBUG   (   77):          5e5c2a38  5e5c2a58
I/DEBUG   (   77):          5e5c2a3c  5df932d4  /data/data/org.fatball.plantilla/lib/libSDL2.so (SDL_InitSubSystem_REAL+356)
I/DEBUG   (   77):     #02  5e5c2a40  00000000
I/DEBUG   (   77):          5e5c2a44  00000000
I/DEBUG   (   77):          5e5c2a48  00000000
I/DEBUG   (   77):          5e5c2a4c  00000000
I/DEBUG   (   77):          5e5c2a50  00000000
I/DEBUG   (   77):          5e5c2a54  00000000
I/DEBUG   (   77):          5e5c2a58  00000000
I/DEBUG   (   77):          5e5c2a5c  00000000
I/DEBUG   (   77):          5e5c2a60  bd09d56a
I/DEBUG   (   77):          5e5c2a64  00000002
I/DEBUG   (   77):          5e5c2a68  5e3840d8
I/DEBUG   (   77):          5e5c2a6c  5e3840e0
I/DEBUG   (   77):          5e5c2a70  fffffc5c
I/DEBUG   (   77):          5e5c2a74  5e358d8c  /data/data/org.fatball.plantilla/lib/libbgdrtm.so
I/DEBUG   (   77):          5e5c2a78  5e383fd0  /data/data/org.fatball.plantilla/lib/libbgdrtm.so
I/DEBUG   (   77):          5e5c2a7c  5e5c2bbc
I/DEBUG   (   77):
I/DEBUG   (   77): memory near r1:
I/DEBUG   (   77):     5e358d6c 5e3427e4 5e3440d8 5e3440e0 5e3440e8  .'4^.@4^.@4^.@4^
I/DEBUG   (   77):     5e358d7c 400c236d 5e34a758 5e3477a8 00000000  m#.@X.4^.w4^....
I/DEBUG   (   77):     5e358d8c 00000000 00000000 00000000 400cde4d  ............M..@
I/DEBUG   (   77):     5e358d9c 400cdf65 400e88f5 5e28df68 5e28df3c  e..@...@h.(^<.(^
I/DEBUG   (   77):     5e358dac 400caa01 400ce315 400e88f9 400bd510  ...@...@...@...@
I/DEBUG   (   77):
I/DEBUG   (   77): memory near r5:
I/DEBUG   (   77):     5e3856a4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856b4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856c4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856d4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e3856e4 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):
I/DEBUG   (   77): memory near fp:
I/DEBUG   (   77):     5e5c2a60 bd09d56a 00000002 5e3840d8 5e3840e0  j........@8^.@8^
I/DEBUG   (   77):     5e5c2a70 fffffc5c 5e358d8c 5e383fd0 5e5c2bbc  \.....5^.?8^.+\^
I/DEBUG   (   77):     5e5c2a80 5e5c4be0 5e290ad8 5e5c3bbc 2b2b5653  .K\^..)^.;\^SV++
I/DEBUG   (   77):     5e5c2a90 5e34b71a 5e358d8c 5e3840cc 5e358d8c  ..4^..5^.@8^..5^
I/DEBUG   (   77):     5e5c2aa0 5e3840c0 5e358d8c 5e3840b4 5e358d8c  .@8^..5^.@8^..5^
I/DEBUG   (   77):
I/DEBUG   (   77): memory near ip:
I/DEBUG   (   77):     bee9dbf4 bee9dddc bee9ddf6 bee9de0f bee9df5d  ............]...
I/DEBUG   (   77):     bee9dc04 bee9df64 bee9df81 bee9dfa9 bee9dfcc  d...............
I/DEBUG   (   77):     bee9dc14 00000000 00000010 0000b8d7 00000006  ................
I/DEBUG   (   77):     bee9dc24 00001000 00000011 00000064 00000003  ........d.......
I/DEBUG   (   77):     bee9dc34 40011034 00000004 00000020 00000005  4..@.... .......
I/DEBUG   (   77):
I/DEBUG   (   77): memory near sp:
I/DEBUG   (   77):     5e5c2a10 00000000 fffffe00 00000000 400ce3b1  ...............@
I/DEBUG   (   77):     5e5c2a20 5e34c8d1 ffff3b45 df0027ad 00000000  ..4^E;...'......
I/DEBUG   (   77):     5e5c2a30 00000020 00000005 5e5c2a58 5df932d4   .......X*\^.2.]
I/DEBUG   (   77):     5e5c2a40 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):     5e5c2a50 00000000 00000000 00000000 00000000  ................
I/DEBUG   (   77):
I/DEBUG   (   77): code around pc:
I/DEBUG   (   77):     5e2a5a2c e59f0630 e1a06009 e59f162c e1a0400a  0....`..,....@..
I/DEBUG   (   77):     5e2a5a3c e08f0000 e08f1001 e7980000 e5900014  ................
I/DEBUG   (   77):     5e2a5a4c e5900000 e3500000 e59f05e0 11a0408a  ......P......@..
I/DEBUG   (   77):     5e2a5a5c 11a06089 e7901001 e5911000 e3510005  .`............Q.
I/DEBUG   (   77):     5e2a5a6c 3a000004 e59f15f4 e08f1001 e7900001  ...:............
I/DEBUG   (   77):
I/DEBUG   (   77): code around lr:
I/DEBUG   (   77):     400ce390 e8bde7eb 461083f0 83f0e8bd 2d3d7805  .......F.....x=-
I/DEBUG   (   77):     400ce3a0 e7e8d1f0 00025180 a901b507 ffbaf7ff  .....Q..........
I/DEBUG   (   77):     400ce3b0 b510bd0e f7ff4604 88a0fcfd eb038863  .....F......c...
I/DEBUG   (   77):     400ce3c0 bd104000 00000000 43d0e92d 8b02ed2d  .@......-..C-...
I/DEBUG   (   77):     400ce3d0 ed9d4690 46998b08 46044619 ec534610  .F.....F.F.F.FS.
I/BootReceiver(  289): Copying /data/tombstones/tombstone_03 to DropBox (SYSTEM_TOMBSTONE)
W/InputDispatcher(  289): channel '42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
E/InputDispatcher(  289): channel '42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL (server)' ~ Channel is unrecoverably broken and will be disposed!
D/Zygote  (   80): Process 1029 terminated by signal (11)
D/dalvikvm(  289): GC_FOR_ALLOC freed 593K, 7% free 10066K/10759K, paused 75ms, total 80ms
W/InputDispatcher(  289): Attempted to unregister already unregistered input channel '42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL (server)'
I/WindowManager(  289): WINDOW DIED Window{42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL paused=false}
W/WindowManager(  289): Force-removing child win Window{42438780 SurfaceView paused=false} from container Window{42437580 org.fatball.plantilla/org.fatball.plantilla.FATBALL paused=false}
I/ActivityManager(  289): Process org.fatball.plantilla (pid 1029) has died.
W/ActivityManager(  289): Force removing ActivityRecord{42420b00 org.fatball.plantilla/.FATBALL}: app died, no saved state
W/WindowManager(  289): Failed looking up window
W/WindowManager(  289): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@424385c0 does not exist
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7707)
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7698)
W/WindowManager(  289):         at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:854)
W/WindowManager(  289):         at android.os.BinderProxy.sendDeathNotice(Binder.java:449)
W/WindowManager(  289):         at com.android.server.SystemServer.init1(Native Method)
W/WindowManager(  289):         at com.android.server.SystemServer.main(SystemServer.java:962)
W/WindowManager(  289):         at java.lang.reflect.Method.invokeNative(Native Method)
W/WindowManager(  289):         at java.lang.reflect.Method.invoke(Method.java:511)
W/WindowManager(  289):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
W/WindowManager(  289):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/WindowManager(  289):         at dalvik.system.NativeStart.main(Native Method)
I/WindowState(  289): WIN DEATH: null
W/WindowManager(  289): Failed looking up window
W/WindowManager(  289): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@42437330 does not exist
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7707)
W/WindowManager(  289):         at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7698)
W/WindowManager(  289):         at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:854)
W/WindowManager(  289):         at android.os.BinderProxy.sendDeathNotice(Binder.java:449)
W/WindowManager(  289):         at dalvik.system.NativeStart.run(Native Method)
I/WindowState(  289): WIN DEATH: null
D/dalvikvm(  289): GC_FOR_ALLOC freed 287K, 9% free 10234K/11143K, paused 100ms, total 100ms
I/dalvikvm-heap(  289): Grow heap (frag case) to 10.227MB for 196628-byte allocation
D/dalvikvm(  289): GC_FOR_ALLOC freed 129K, 10% free 10296K/11399K, paused 102ms, total 102ms
V/ActivityManager(  289): ensureActivitiesVisible behind ActivityRecord{4223f9c0 com.android.launcher/com.android.launcher2.Launcher} configChanges=0x0
I/dalvikvm(  289): Jit: resizing JitTable from 4096 to 8192
D/dalvikvm(  289): GC_FOR_ALLOC freed 429K, 13% free 9998K/11399K, paused 133ms, total 145ms
V/TabletStatusBar(  386): setLightsOn(true)
W/InputMethodManagerService(  289): Got RemoteException sending setActive(false) notification to pid 1029 uid 10053
W/SocketClient(   76): write error (Broken pipe)
D/SurfaceFlinger(   79): About to give-up screen, flinger = 0x41bb2af0
V/LockPatternKeyguardView(  289): Set visibility on com.android.internal.policy.impl.LockPatternKeyguardView$4@422b9918 to 8388608
V/TransportControlView(  289): Create TCV com.android.internal.widget.TransportControlView@4236fb68
V/KeyguardViewManager(  289): KGVM: Set visibility on com.android.internal.policy.impl.KeyguardViewManager$KeyguardViewHost@4232abf8 to 6291456
D/dalvikvm(  289): GC_CONCURRENT freed 798K, 11% free 10190K/11399K, paused 13ms+5ms, total 117ms
D/dalvikvm(  289): WAIT_FOR_CONCURRENT_GC blocked 29ms
V/LockPatternKeyguardView(  289): Set visibility on com.android.internal.policy.impl.LockPatternKeyguardView$4@422b9918 to 8388608
I/TabletStatusBar(  386): DISABLE_CLOCK: yes
V/LockPatternKeyguardView(  289): Set visibility on com.android.internal.policy.impl.LockPatternKeyguardView$4@422b9918 to 8388608
D/dalvikvm(  386): GC_CONCURRENT freed 6681K, 46% free 8037K/14791K, paused 19ms+7ms, total 88ms
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 18, 2016, 07:03:42 pm
Más cositas que he hecho últimamente:
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 18, 2016, 07:57:52 pm

Buenas
Josebita,puede que sea por que hago
Set_mode(640.480,16) ?
Como dijiste que solo funcionaba a 32 bits igual casca por eso en android,y quizas eso a windows se la pela, y lo ejecuta igualmente,esta noche probare a ver.
Saludos
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 19, 2016, 10:02:48 am
El tercer parámetro (el de la profundidad de color) ya no existe en PixTudio, de forma que se está interpretando como el cuarto de BennuGD (el de MODE_WINDOW y demás). De todas formas el propio hecho de estar ahí no debería molestar.

Puede ser que haya algún bug en Android que aparezca cuando se llame más de una vez a set_mode... No lo sé, lo tengo que revisar.

Si eres capaz de aislar el bug y me lo reportas aquí (http://"https://bitbucket.org/josebagar/pixtudio/issues?status=new&status=open") lo podré arreglar mucho antes y eso que ganamos todos :)
Buenas
Josebita,puede que sea por que hago
Set_mode(640.480,16) ?
Como dijiste que solo funcionaba a 32 bits igual casca por eso en android,y quizas eso a windows se la pela, y lo ejecuta igualmente,esta noche probare a ver.
Saludos
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 20, 2016, 02:23:13 am
Por teneros al día: últimamente estoy haciendo labores de limpieza del código, de forma que ahora mismo probablemente no compilará en ningún sitio que no sea mi ordenador :D
Por detallar algunas cosas:
  • He eliminado muchos warnings de compilación (por diferencias de prototipo en gr_new_object, sobre todo, pero también en más sitios).
  • He movido el código de red de la fsock a una librería independiente, de forma que fsock (que ahora se llama mod_fsock y forma parte de la distribución estándar de PixTudio) ahora no es más que un binding con esa librería. Esto es interesante porque, como ya comenté, quiero que la mod_debug se utilice por red en lugar de desde la propia ventana del juego y quiero que use las mismas rutinas de red que la mod_fsock.
  • La variable SCALE_QUALITY que dice si se usa filtro lineal o no ahora se puede leer desde el entorno y no sólo desde el código.
  • He corregido un bug que hacía que no se tuviera en cuenta el valor de scale_resolution.
  • He reformateado todo el código (con clang-format (http://clang.llvm.org/docs/ClangFormat.html)) para que el estilo sea coherente. A Splinter le gusta un estilo distinto del que me gusta a mí y eso hacía que las partes del código que se han heredado de Bennu tuvieran un estilo y las nuevas otro, lo cual es horrible. Ahora todo el estilo de código es coherente.
  • He iniciado un pequeño experimento: voy a tratar de cambiar el sistema de compilado a CMake. Por ahora he subido un proyecto para pxtb y parece funcionar bien en Linux. La idea es cambiar a CMake completamente porque la verdad es que lo que tengo ahora mismo no me gusta nada.

muy bueno joseba, la idea de mod_debug era tambien hacerlo externo (al juego), por red o por algun ipc (que podria tranquilamente ser socket), seria relativamente simple armar el protocolo, si mal no recuerdo la debug ya esta medio preparada, al menos se pueden usar los hooks que ya estan definidos... o bien se puede tirar todo a la basura y armar una nueva.
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 20, 2016, 10:44:42 am
Está básicamente hecho. De hecho, ya funciona con un programa muy sencillo que he escrito en menos de 80 líneas de Python (aquí (https://bitbucket.org/josebagar/pixtudio/src/b81507ae7a29677111261dc95049740df5e10b74/tools/debug_server/server.py?at=bigmap&fileviewer=file-view-default)). He hecho un protocolo de red muy sencillo aprovechando las rutinas que ya tenías pero adaptándolas para que tomen entradas de un socket y escriban al socket.

Como comenté, moví el código de redes de la mod_fsock a una librería independiente (que he llamado libsocket (https://bitbucket.org/josebagar/pixtudio/src/b81507ae7a29677111261dc95049740df5e10b74/modules/libsocket/libsocket.c?at=bigmap&fileviewer=file-view-default)) y quiero que la mod_debug use esas librerías, en lugar de las que hay ahora mismo (que son básicamente las mismas, pero están dentro de la mod_debug, lo cual no es óptimo).

Mi mayor problema es que no tengo prácticamente idea de redes. La implementación actual funciona, pero seguro que se puede hacer mucho mejor.
muy bueno joseba, la idea de mod_debug era tambien hacerlo externo (al juego), por red o por algun ipc (que podria tranquilamente ser socket), seria relativamente simple armar el protocolo, si mal no recuerdo la debug ya esta medio preparada, al menos se pueden usar los hooks que ya estan definidos... o bien se puede tirar todo a la basura y armar una nueva.
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 20, 2016, 02:52:46 pm
Está básicamente hecho. De hecho, ya funciona con un programa muy sencillo que he escrito en menos de 80 líneas de Python (aquí (https://bitbucket.org/josebagar/pixtudio/src/b81507ae7a29677111261dc95049740df5e10b74/tools/debug_server/server.py?at=bigmap&fileviewer=file-view-default)). He hecho un protocolo de red muy sencillo aprovechando las rutinas que ya tenías pero adaptándolas para que tomen entradas de un socket y escriban al socket.

Como comenté, moví el código de redes de la mod_fsock a una librería independiente (que he llamado libsocket (https://bitbucket.org/josebagar/pixtudio/src/b81507ae7a29677111261dc95049740df5e10b74/modules/libsocket/libsocket.c?at=bigmap&fileviewer=file-view-default)) y quiero que la mod_debug use esas librerías, en lugar de las que hay ahora mismo (que son básicamente las mismas, pero están dentro de la mod_debug, lo cual no es óptimo).

Mi mayor problema es que no tengo prácticamente idea de redes. La implementación actual funciona, pero seguro que se puede hacer mucho mejor.
muy bueno joseba, la idea de mod_debug era tambien hacerlo externo (al juego), por red o por algun ipc (que podria tranquilamente ser socket), seria relativamente simple armar el protocolo, si mal no recuerdo la debug ya esta medio preparada, al menos se pueden usar los hooks que ya estan definidos... o bien se puede tirar todo a la basura y armar una nueva.

genial! si quieres pasame el codigo de la parte de comms de la mod_debug, y lo reviso en algun momento.
Título: Re:Diario de desarrollo
Publicado por: warrior_rockk en Enero 20, 2016, 03:02:23 pm
¿Porque considerais mejor que la salida del debug sea por red? Para que el juego no pierda rendimiento por escribir en consola?
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 20, 2016, 03:48:16 pm
mmm... pensaba argumentar unas cuantas cosas, pero la verdad que me detengo a pensar si realmente son mejores y la verdad que no las veo ni mejor ni peor... quizas en dispositivos sin teclado pueda ser util...
Título: Re:Diario de desarrollo
Publicado por: warrior_rockk en Enero 20, 2016, 04:02:51 pm
Luego,¿Sería recomendable que fuera configurable la salida por red o por consola? Más que nada por por hacer debug sin necesidad de un cliente de red. Aunque creo que si se implementa, siempre usaré el cliente (sobretodo por tener la pantalla del juego libre)
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 20, 2016, 04:06:13 pm
se podria
Título: Re:Diario de desarrollo
Publicado por: Goku jr en Enero 20, 2016, 05:38:03 pm
Un momento que me pierdo xd
Por red os referis a que por ejemplo estoi probando un juego en una portatil o android..y estoi viendo el debug en el pc?
Si es asi molaaaaa
Saludos
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 20, 2016, 06:37:31 pm
Un momento que me pierdo xd
Por red os referis a que por ejemplo estoi probando un juego en una portatil o android..y estoi viendo el debug en el pc?
Si es asi molaaaaa
Saludos

por supuesto, eso mismo.
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 20, 2016, 07:43:23 pm
A ver, recordad que uno de los focos importantes del desarrollo de PixTudio son los dispositivos móviles Android e iOS. Ahí no tendremos teclado, en ppio. pero sí red y ayuda mucho poder hacer el debug directamente del juego funcionando en el dispositivo.

Por otra parte, la idea es que en el ordenador el debugger se integre en el IDE. Si no lo hay, no aporta mucho tener la consola fuera del juego, pero teniendo todo en cuenta, creo que compensa tenerlo fuera.

Hablamos para lo del protocolo, Splinter. A ver si saco un rato un día y te mando cómo funciona ahora.
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 20, 2016, 07:53:38 pm
genial!
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Enero 21, 2016, 02:32:21 am
Hombre, yo lo veo útil en eso, en dispositivos portátiles o sin sistemas de ventanas, pero espero que eso no complique demasiado el uso, porque yo soy de usar SAY hasta decir basta para depurar, más rápido que los WRITE o los ficheros de log :P
No me disgusta el sistema paso a paso tampoco, pero en videojuegos se me antoja lento, sobre todo si tienes que estar dando input constantemente, y la zona donde el prota se vuelve loco está a unos 500 frames de distancia.
Título: Re:Diario de desarrollo
Publicado por: panreyes en Enero 26, 2016, 03:34:08 pm
Nueva build pixtudio-win32 :)
https://www.dropbox.com/s/rrbwpdujy65w2g3/pixtudio-win32.zip?dl=0
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 26, 2016, 04:33:08 pm
Nueva build pixtudio-win32 :)
https://www.dropbox.com/s/rrbwpdujy65w2g3/pixtudio-win32.zip?dl=0
Mil gracias :)
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Enero 26, 2016, 04:46:00 pm
¿Aun no habeis decidido un sistema de numeración de versiones? :D :D :D
Título: Re:Diario de desarrollo
Publicado por: panreyes en Enero 26, 2016, 08:09:28 pm
TRES

Yastá xD
(En el futuro las nombraré por la fecha de publicación)
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Enero 27, 2016, 12:27:02 am
Genial, cuando llegueis a la 42 (http://forum.bennugd.org/The Answer to the Ultimate Question of Life, the Universe, and Everything), ya no hará falta programar nada más :D :D :D
Título: Re:Diario de desarrollo
Publicado por: warrior_rockk en Enero 27, 2016, 06:22:40 am
Genial, cuando llegueis a la 42 (http://forum.bennugd.org/The Answer to the Ultimate Question of Life, the Universe, and Everything), ya no hará falta programar nada más :D :D :D


 ;D ;D ;D ;D ;D  Simplemente genial Drumpi!!
Título: Re:Diario de desarrollo
Publicado por: La momia que fuma en Enero 30, 2016, 02:50:36 am

Tengo una duda, ahora set_mode no me admite 4 parametros, me dice que 3 como máximo (estaba usando resolucionX, resolucionY, profundidad, y opción para vsync)

Cual es el 3º exactamente, sigue siendo profundidad? Y como activo ahora el vsync?

Por defecto me va desactivado, y por cierto, como curiosidad, por el motivo que sea, el "efecto flan" que eso provoca (Copyright by Splinter :D) es muchisimo mas chungo que en Bennu :P (Que igual es cosa de mi equipo, sabe dios)

Otra cosa, he probado full_screen a 800x600, en monitor panorámico, que antes juraría que estiraba la imágen como ha pasado toda la vida de dios, y ahora te hace letterboxing de ese (franjas negras, vaya, para mantener la proporción).......mola!! :D
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Enero 30, 2016, 07:01:56 am
"efecto flan Copyrigth by Splinter"!!!

gracias momia!!! grrrr!!! :D
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 31, 2016, 08:48:22 pm
Cuántas cosas sin leer...


Tengo una duda, ahora set_mode no me admite 4 parametros, me dice que 3 como máximo (estaba usando resolucionX, resolucionY, profundidad, y opción para vsync)

Cual es el 3º exactamente, sigue siendo profundidad? Y como activo ahora el vsync?
Me he cargado el parámetro de profundidad. Piensa que es como poner un "32" siempre ahí, de forma que el tercer parámetro de PixTudio es equivalente al cuarto de Bennu.

El VSYNC no lo he probado, la verdad, pero me suena que debe funcionar...
Título: Re:Diario de desarrollo
Publicado por: josebita en Enero 31, 2016, 11:18:24 pm
He añadido ficheros de proyecto basados en CMake (https://cmake.org/) para reemplazar los Makefiles estáticos que estaba usando hasta ahora.

Lo bueno es que los scripts CMake sirven tanto para compilar desde línea de comandos como para generar ficheros de proyecto para un montón de IDEs, incluídos QT Creator (que es el IDE que suelo usar para C) y XCode, pero también para muchos otros. Esto me permite usar el debugger desde el IDE en windows, que hasta ahora sólo lo podía usar en Linux y Mac.

Todavía no he quitado los Makefiles estáticos, pero lo haré pronto.
Título: Re:Diario de desarrollo
Publicado por: La momia que fuma en Febrero 02, 2016, 02:18:12 pm
Piensa que es como poner un "32" siempre ahí, de forma que el tercer parámetro de PixTudio es equivalente al cuarto de Bennu.


Es lo que pensaba, ya había probado, pero parece que no va. Cuidado ahí con la configuración de la gráfica, que puede estar puesta para forzar siempre el vsync y entonces no se da cuen uno...
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 03, 2016, 12:07:14 am
Resuelto bug con get_real_point() en el commit 3b89bb3 (http://"https://bitbucket.org/josebagar/pixtudio/commits/3b89bb3e692fc61ef11fec4d38b1769dc6b39e1c").

Mil gracias, Momia.
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 03, 2016, 12:46:47 am
Piensa que es como poner un "32" siempre ahí, de forma que el tercer parámetro de PixTudio es equivalente al cuarto de Bennu.

Es lo que pensaba, ya había probado, pero parece que no va. Cuidado ahí con la configuración de la gráfica, que puede estar puesta para forzar siempre el vsync y entonces no se da cuen uno...
Ya veo por qué no funciona el VSYNC. Tiene que ver con que reutilizo el objeto de renderizado (de lo contrario, se invalidarían las texturas al hacer un set_mode) pero lo tengo que recrear para alterar el valor del vsync... Ya lo miraré.
Título: Re:Diario de desarrollo
Publicado por: La momia que fuma en Febrero 03, 2016, 06:21:42 pm
Al final me vais a tener que poner en los créditos como "Imán de bugs" xD
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 03, 2016, 06:27:21 pm
Al final me vais a tener que poner en los créditos como "Imán de bugs" xD
Teeeester. Se dice tester.

Y yo quiero ver a Spiderman saltando.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 03, 2016, 06:42:34 pm
Espérate a que empiece yo a programar cosas y ya veremos si no me terminan a mi diciendo "el pesao de los errorcitos de los webs", que ya me queda poco para empezar (de momento parece que no he roto nada con la conversión 8b -> 16b).

Josebita, no habrá problemas con los FPGs de 16 bits ¿no? (nota mental: cambiar los "set_mode" para usar dos variables en lugar de tres).
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 03, 2016, 08:01:40 pm
Josebita, no habrá problemas con los FPGs de 16 bits ¿no? (nota mental: cambiar los "set_mode" para usar dos variables en lugar de tres).
Pues yo diría que va bien.

Me surge la duda de qué pasa con el color 0 (transparente)... Mañana te lo confirmo, pero si alguien lo querer probar antes, que se sienta libre.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 04, 2016, 02:41:03 am
Mañana empiezo a portar (de nuevo) código de BennuGD a PiXTudio. Ya he hecho los cambios a 16bits, tanto de new_map, set_mode y los FPG que andaba usando (aunque tengo que mirar un bug raro con el mapa de durezas que acabo de detectar)
Lo digo por si te quieres centrar en otra cosa más importante.
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 04, 2016, 12:16:49 pm
Mañana empiezo a portar (de nuevo) código de BennuGD a PiXTudio. Ya he hecho los cambios a 16bits, tanto de new_map, set_mode y los FPG que andaba usando (aunque tengo que mirar un bug raro con el mapa de durezas que acabo de detectar)
Lo digo por si te quieres centrar en otra cosa más importante.
Pues no, mira, el color 0 no se interpreta como transparente. Me lo apunto a ver si puedo hacer algo:
https://bitbucket.org/josebagar/pixtudio/issues/32/16-bit-fpg-loading-ignores-transparency
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 08, 2016, 08:00:51 pm
El commit f525ffe (https://bitbucket.org/josebagar/pixtudio/commits/f525ffeb7f02f6cf6d204261bb9a092849813407) añade varios elementos a la estructura scroll:
* BYTE alpha1, alpha2;      <--   Controlan el valor de transparencia con el que se pintan los planos de scroll
* BYTE modr1, modg1, modb1, modr2, modg2, modb2;      <--    Controlan la modulación de color a aplicar a los planos de scroll.

Lo del alpha es necesario porque, como ya comenté,flags=4 ya no funciona.
Con la modulación del color se pueden hacer algunas cosas chulas. A ver si mañana subo un ejemplo con una idea de para qué serviría.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 08, 2016, 08:22:12 pm
¿Lo digo yo? ¿lo digo yo? :D :D :D
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 08, 2016, 09:26:54 pm
¿Lo digo yo? ¿lo digo yo? :D :D :D
Puedes, pero nunca jamás revelaré mis planes, hasta mañana.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 10, 2016, 01:04:35 am
Es por no reventar la sorpresa, pero ¿Podría tener algo que ver con esto? :D
(Espero que se vea, porque ando con Linux y no sé lo que estoy mandando :P)
Título: Re:Diario de desarrollo
Publicado por: warrior_rockk en Febrero 10, 2016, 06:28:56 am
El commit f525ffe (https://bitbucket.org/josebagar/pixtudio/commits/f525ffeb7f02f6cf6d204261bb9a092849813407) añade varios elementos a la estructura scroll:
* BYTE alpha1, alpha2;      <--   Controlan el valor de transparencia con el que se pintan los planos de scroll
* BYTE modr1, modg1, modb1, modr2, modg2, modb2;      <--    Controlan la modulación de color a aplicar a los planos de scroll.

Lo del alpha es necesario porque, como ya comenté,flags=4 ya no funciona.
Con la modulación del color se pueden hacer algunas cosas chulas. A ver si mañana subo un ejemplo con una idea de para qué serviría.


Ya es mañana! a ver, a ver......  ;D ;D
Título: Re:Diario de desarrollo
Publicado por: JaViS en Febrero 10, 2016, 02:32:44 pm
El commit f525ffe (https://bitbucket.org/josebagar/pixtudio/commits/f525ffeb7f02f6cf6d204261bb9a092849813407) añade varios elementos a la estructura scroll:
* BYTE alpha1, alpha2;      <--   Controlan el valor de transparencia con el que se pintan los planos de scroll
* BYTE modr1, modg1, modb1, modr2, modg2, modb2;      <--    Controlan la modulación de color a aplicar a los planos de scroll.

Lo del alpha es necesario porque, como ya comenté,flags=4 ya no funciona.
Con la modulación del color se pueden hacer algunas cosas chulas. A ver si mañana subo un ejemplo con una idea de para qué serviría.


Ya es mañana! a ver, a ver......  ;D ;D


Exacto! que no pude dormir de la expectativa :D
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 10, 2016, 03:39:15 pm
Joé, perdonad, que ando con mucho lío de trabajo.
Lo intento subir lo antes posible.

[Edito] Pero vamos, que es una chorradilla...
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 10, 2016, 05:07:53 pm
Es por no reventar la sorpresa, pero ¿Podría tener algo que ver con esto? :D
(Espero que se vea, porque ando con Linux y no sé lo que estoy mandando :P)
Pues también, mira. También se podría hacer algo así, sí :)
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 10, 2016, 10:16:28 pm
Una cosa para lo que es útil la modulación de color (mediante las variables locales modr, modg y modb) es para hacer "equipos" por colores. Si no me equivoco, Pixel lo usa en el Tiki Brawl para, a partir de un único sprite, conseguir variaciones para el equipo "rojo", el "azul" y demás.

Sobre el ejemplo: como os decía es una tontería. Se me había ocurrido que si uno quiere pasar de una escena diurna a una nocturna, puede añadir un pequeño efecto al scroll para simular un atardecer.
El ejemplo sería el siguiente:
Código: [Seleccionar]
// import modules
import "mod_say"
import "mod_proc"
import "mod_grproc"
import "mod_map"
import "mod_text"
import "mod_key"
import "mod_video"
import "mod_screen"
import "mod_draw"
import "mod_scroll"
import "mod_math"
import "mod_timers"
import "mod_mouse"

GLOBAL
   int graphic;
   int scroll_window;
   int scroll_window2;

Process sunset()
Private
int time=0;
Begin
    time = timer[0];
    LOOP
        // Change to sunset
        scroll[0].modg1 = 255 -  64 * (1.0 - pow(2.71828, -(float)(timer[0]-time)/500.0));
        scroll[0].modb1 = 255 - 114 * (1.0 - pow(2.71828, -(float)(timer[0]-time)/500.0));

        // Background should change to 255, 228, 206
        scroll[0].modr2 = 179 +  76 * (1.0 - pow(2.71828, -(float)(timer[0]-time)/500.0));
        scroll[0].modg2 = 204 +  24 * (1.0 - pow(2.71828, -(float)(timer[0]-time)/500.0));
        scroll[0].modb2 = 205 +   1 * (1.0 - pow(2.71828, -(float)(timer[0]-time)/500.0));
        FRAME;
    End
End

PROCESS prota()
Private
    int time=0;
Begin
    file = fpg_load("png/spidey.fpg");

    graph = 5;

    x = 500;
    y = 1050;
    LOOP
        if(key(_left) || key(_right))
            y = 1040;

            // Set flags
            if(key(_left))
                scroll[0].x0 -= 5;
                flags = B_HMIRROR;
            else
                scroll[0].x0 += 5;
                flags = 0;
            end

            // Animate spidey
            if(timer[0] > time+20 || graph == 5)
                graph += 1;
                if(graph > 4)
                    graph = 1;
                end

                time = timer[0];
            end
        else
            time = timer[0];
            graph = 5;
            y = 1050;
        end

        if(scroll[0].x0 > 1200 && get_id(TYPE sunset) == 0)
            say("Sunset!!");
            sunset();
        end

        FRAME;
    End

    Onexit:
    fpg_unload(file);
End

PROCESS main()
Private
    int time=0;
    int width=1920, height=1080;
    int sky=0;
Begin
    scale_resolution = 10240576;
    set_mode(width, height, MODE_WINDOW);
    set_fps(60, 0);

    // load the PNG file with the graphics
    graphic = png_load("png/bg.png");
    sky = map_new(width, height, 32);
    map_clear(0, sky, rgb(255, 255, 255));

    scroll_window=scroll_start(0, 0, graphic, sky, 0, 3);
    scroll[0].x0 = 500;
    scroll[0].y0 = 560;

    /* This is a light blue for the sky */
    scroll[0].modr2 = 179;
    scroll[0].modg2 = 204;
    scroll[0].modb2 = 205;

    prota();

    write_var(0, 10, 10, 0, fps);

    WHILE (NOT key(_esc))
        FRAME;
    END

    // stop scroll window.
    scroll_stop(0);

    // kill all processes, excect the "main" process.
    let_me_alone();
END
Podéis descargarlo de aquí (https://josebagar.com/owncloud/index.php/s/8hqdowfSZZf0Hak), pero no se lo digáis a Momia, que le he robado los gráficos. He intentado grabar un vídeo de cómo queda en mi ordenador, pero es un poco viejuno y deslucía un poco.


Como os digo, el efecto no es espectacular, pero creo que queda bien :)


Ya me contáis.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 11, 2016, 12:47:32 am
Pues preferiría ver el video, porque a falta de montarme el entorno de compilación, tendría que esperar a una nueva versión binaria (la ¡CINCO!) para poder probarlo.
Pero no termino de entender esto ¿Es una nueva variable local o de scroll? ¿Y cómo funciona exactamente?, porque pensaba que era como lo de FADE, que modificaba el porcentaje de cada componente de color que se muestra del gráfico del scroll.
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 13, 2016, 08:07:13 pm
video please...
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 16, 2016, 07:18:08 pm
Perdonad que no haya subido el vídeo aún, he andado ocupado :D

El commit 2376db6 (https://bitbucket.org/josebagar/pixtudio/commits/2376db691382421c2fba079bc63df3c7abecb17d) añade soporte para fuentes en formato TTF basado en FreeType2. NO se trata de haber integrado la mod_ttf que ya existía, sino que es algo más completo.

La siguiente imagen corresponde al ejemplo 19_mod_text_freetype.prg (https://bitbucket.org/josebagar/pixtudio/src/2376db691382421c2fba079bc63df3c7abecb17d/examples/19_mod_text_freetype.prg?at=bigmap&fileviewer=file-view-default):
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3437)
En base al ejemplo, os cuento que he añadido un par de funciones:
Por lo demás, se usan igual que cualquier otra fuente en PixTudio, aunque el renderizado se hace mediante FreeType. En particular:
Cosas que tengo pendientes:
[Edito] No he medido cuánto más lento es pintar fuentes con este método vs el tradicional. Será algo más lento, aunque puede que no demasiado.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 16, 2016, 07:34:40 pm
¿Entonces no se puede hacer con una fuente TTF lo que se hacía hasta ahora con las FNT? es decir, escribo un texto con write_string por ejemplo, cambio la text_z, y hago otro write_string con otro tamaño de letra diferente. Y luego que se actualicen de forma automática modificando el contenido de la string que le paso como parámetro.

Por cierto: muy chulo lo de las fuentes, con autoajuste y todo. Buen trabajo. ¡ENHORABUENA!
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 16, 2016, 07:46:10 pm
¿Entonces no se puede hacer con una fuente TTF lo que se hacía hasta ahora con las FNT? es decir, escribo un texto con write_string por ejemplo, cambio la text_z, y hago otro write_string con otro tamaño de letra diferente. Y luego que se actualicen de forma automática modificando el contenido de la string que le paso como parámetro.
La limitación que hay ahora mismo es que cuando cargas una fuente (o modificas su tamaño) se precargan los 256 caracteres a memoria, de forma que cada fuente sólo puede tener un tamaño.
Lo que sí que debería funcionar es que cargues dos veces el mismo TTF y le asignes a cada uno un tamaño distinto.

Pero no me queda claro a qué te refieres: las fuentes FNT no tienen tamaños, ¿no?.
Por cierto: muy chulo lo de las fuentes, con autoajuste y todo. Buen trabajo. ¡ENHORABUENA!
Gracias :)

[Edito] Otra cosa que puedo meter en el futuro son efectos de fuente como subrayado y tachado.
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 16, 2016, 08:45:38 pm
Otra cosita: para el renderizado he tenido que crear una tabla de conversión CP850->UTF-8. Puede ser que haya entradas que estén mal. Si es así, por favor decídmelo y lo reviso.
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 16, 2016, 08:54:54 pm
Y el vídeo del efecto de "atardecer". El efecto en sí es sutil y los colores han perdido saturación al hacer el vídeo, pero creo que se aprecia de qué va la película :)
https://vimeo.com/155582188
Título: Re:Diario de desarrollo
Publicado por: JaViS en Febrero 16, 2016, 09:19:39 pm
Muy buenos avances Josebita, felicitaciones :D
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 17, 2016, 01:19:23 am
muy bueno todo joseba! felicitaciones!
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 17, 2016, 02:06:29 am
¿Entonces no se puede hacer con una fuente TTF lo que se hacía hasta ahora con las FNT? es decir, escribo un texto con write_string por ejemplo, cambio la text_z, y hago otro write_string con otro tamaño de letra diferente. Y luego que se actualicen de forma automática modificando el contenido de la string que le paso como parámetro.
La limitación que hay ahora mismo es que cuando cargas una fuente (o modificas su tamaño) se precargan los 256 caracteres a memoria, de forma que cada fuente sólo puede tener un tamaño.
Lo que sí que debería funcionar es que cargues dos veces el mismo TTF y le asignes a cada uno un tamaño distinto.

Pero no me queda claro a qué te refieres: las fuentes FNT no tienen tamaños, ¿no?.
Por cierto: muy chulo lo de las fuentes, con autoajuste y todo. Buen trabajo. ¡ENHORABUENA!
Gracias :)

[Edito] Otra cosa que puedo meter en el futuro son efectos de fuente como subrayado y tachado.

Ups, vale, se ve que he dormido menos de lo que necesitaba (otra vez). He confundido los efectos de TEXT_Z y SET_TEXT_COLOR con el tamaño de la letra ^^U

Y mola el efecto del atardecer :) Yo quise hacerlo en FenixLand usando paletas, y esperaba hacerlo en un futuro con blendops, pero esta herramienta seguro que es igualmente útil :)

PD: si te planteas renderizar las fuentes en cursiva, piénsate el poder aplicarle ese efecto a los mapas, tanto en el eje x como en el eje y :P
Título: Re:Diario de desarrollo
Publicado por: darío en Febrero 17, 2016, 10:30:20 am
Estupendo ver progresos!
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 17, 2016, 10:54:47 am
Muchas gracias a todos.

Os dejo unos binarios para windows, para que los probéis si queréis:
https://pixtudio.org/downloads/pixtudio_win32_20160217.7z

A veces dan una violación de segmento al salir. Ya lo miraré.
Título: Re:Diario de desarrollo
Publicado por: JaViS en Febrero 17, 2016, 11:32:50 am




A veces dan una violación de segmento al salir. Ya lo miraré.

A veces me pasa en BennuGD también
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 17, 2016, 11:47:37 am




A veces dan una violación de segmento al salir. Ya lo miraré.

A veces me pasa en BennuGD también
El problema es que sólo me pasa en Windows y sólo me pasa cuando no lo corro con el debugger...
Título: Re:Diario de desarrollo
Publicado por: warrior_rockk en Febrero 17, 2016, 11:49:31 am




A veces dan una violación de segmento al salir. Ya lo miraré.

A veces me pasa en BennuGD también
El problema es que sólo me pasa en Windows y sólo me pasa cuando no lo corro con el debugger...


A mi también me pasa con BennuGD...
Título: Re:Diario de desarrollo
Publicado por: JaViS en Febrero 17, 2016, 01:23:19 pm




A veces dan una violación de segmento al salir. Ya lo miraré.

A veces me pasa en BennuGD también
El problema es que sólo me pasa en Windows y sólo me pasa cuando no lo corro con el debugger...
Pues, me pasa igual.
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 17, 2016, 02:42:25 pm
A veces dan una violación de segmento al salir. Ya lo miraré.
A veces me pasa en BennuGD también
El problema es que sólo me pasa en Windows y sólo me pasa cuando no lo corro con el debugger...
Pues, me pasa igual.
Perdón por el ruido, pero es que resulta que esta clase de bugs tienen un nombre:
https://en.wikipedia.org/wiki/Heisenbug (https://en.wikipedia.org/wiki/Heisenbug)
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 17, 2016, 05:02:50 pm
Ottia!! Que bueno lo del "Heisenbug". Nunca lo había oido.
Vas a tener que depurar a mi (falta de) estilo, es decir, a base de SAY (o printf, que es lo que usa C) y ver valores de variables en runtime :S
Voy a decir lo obvio, pero ¿a ver si el debugger descarga bien algunos recursos que no lo hace el programa principal? A mi me pasó el otro día, liberando un puntero de lista de nodos tipo string_node con la función de liberar lista de nodos de ficheros.
Título: Re:Diario de desarrollo
Publicado por: La momia que fuma en Febrero 17, 2016, 10:53:57 pm

Ya me puedo columpiar con Spiderman!!  ;D


Benchmarkeando un poco, en mi castaña pilonga de ordenador, con la demo esta a full HD, en Bennu agoniza (que este programado como el culo ayuda mucho, ojo xD) con un framerate de 40/40yalgo si me estoy quietecito, y baja hasta 29 si hago el cafre y me columpio o salto a lo bestia (El efectillo de estela que tiene consume lo suyo, sobre todo si te mueves a mucha velocidad, lo que la hace mas larga y por lo tanto mas pesada)


En Pixstudio 60 frames estables y ni una tos, oiga!  :)


(One more time, el vsync, que antes me funcionaba, sigue sin irme, eso si)

Podéis descargarlo de aquí (https://josebagar.com/owncloud/index.php/s/8hqdowfSZZf0Hak), pero no se lo digáis a Momia, que le he robado los gráficos.


Juaaaaas! xD


De molestarme, me molestaría que hayas cogido semejante cutrada de fondo provisional en vez de algo que luzca xD
Título: Re:Diario de desarrollo
Publicado por: JaViS en Febrero 18, 2016, 01:40:37 am

Ya me puedo columpiar con Spiderman!!  ;D


Benchmarkeando un poco, en mi castaña pilonga de ordenador, con la demo esta a full HD, en Bennu agoniza (que este programado como el culo ayuda mucho, ojo xD) con un framerate de 40/40yalgo si me estoy quietecito, y baja hasta 29 si hago el cafre y me columpio o salto a lo bestia (El efectillo de estela que tiene consume lo suyo, sobre todo si te mueves a mucha velocidad, lo que la hace mas larga y por lo tanto mas pesada)


En Pixstudio 60 frames estables y ni una tos, oiga!  :)


(One more time, el vsync, que antes me funcionaba, sigue sin irme, eso si)

Podéis descargarlo de aquí (https://josebagar.com/owncloud/index.php/s/8hqdowfSZZf0Hak), pero no se lo digáis a Momia, que le he robado los gráficos.


Juaaaaas! xD


De molestarme, me molestaría que hayas cogido semejante cutrada de fondo provisional en vez de algo que luzca xD
Felicitaciones! Da gusto ver que funcione tan bien! :D

Enviado desde mi Nexus 6 mediante Tapatalk

Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 18, 2016, 09:31:38 am

Ya me puedo columpiar con Spiderman!!  ;D


Benchmarkeando un poco, en mi castaña pilonga de ordenador, con la demo esta a full HD, en Bennu agoniza (que este programado como el culo ayuda mucho, ojo xD) con un framerate de 40/40yalgo si me estoy quietecito, y baja hasta 29 si hago el cafre y me columpio o salto a lo bestia (El efectillo de estela que tiene consume lo suyo, sobre todo si te mueves a mucha velocidad, lo que la hace mas larga y por lo tanto mas pesada)


En Pixstudio 60 frames estables y ni una tos, oiga!  :)


(One more time, el vsync, que antes me funcionaba, sigue sin irme, eso si)

Podéis descargarlo de aquí (https://josebagar.com/owncloud/index.php/s/8hqdowfSZZf0Hak), pero no se lo digáis a Momia, que le he robado los gráficos.


Juaaaaas! xD


De molestarme, me molestaría que hayas cogido semejante cutrada de fondo provisional en vez de algo que luzca xD
Ah, pues me alegro mucho :)

Cuando lo tengas listo, libéralo y subo un vídeo a la web de PixTudio.

Por cierto, he visto hoy en twitter quejarse al programador principal de SDL de que el renderer OpenGL no está muy optimizado y ayer dijo que estaba trabajando en uno basado en Vulkan. A ver qué tal :)
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 18, 2016, 11:20:15 am
muy bueno eso... quizas ya sea hora de ir tirando a la basura el render desde SDL... mas viendo que SDL2 ya no llega a tantas plataformas como la version anterior...
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 18, 2016, 12:36:39 pm
muy bueno eso... quizas ya sea hora de ir tirando a la basura el render desde SDL... mas viendo que SDL2 ya no llega a tantas plataformas como la version anterior...
O no te he entendido ésto o no me he explicado muy bien :)
Lo que él decía es que el backend basado en OpenGL para SDL_Render en SDL2 no está muy optimizado y que está escribiendo un nuevo backend basado en Vulkan (complementario, no sustituye al basado en OpenGL), pero dentro de SDL_Render, también. De todas formas, no me siento con tiempo/capaz de hablarme directamente con OpenGL ahora mismo, la verdad.

Y bueno, SDL2 no anda mal de plataformas, tampoco:
https://wiki.libsdl.org/Installation (https://wiki.libsdl.org/Installation)

El tema es que SDL1.2 salió en el 2001. ¡En 15 años hubo tiempo de portarla a muchos sitios!.
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 18, 2016, 12:48:00 pm
si, me referia a hablar directamente... pero si, no anda tan mal, son menos, pero bueno...

el tema seria analizar si hablar directo opengl ganamos performance o no...

en fin... por ahora creo que hay muchas cosas por hacer y la performance no esta tan mal...
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 18, 2016, 01:22:24 pm
si, me referia a hablar directamente... pero si, no anda tan mal, son menos, pero bueno...

el tema seria analizar si hablar directo opengl ganamos performance o no...

en fin... por ahora creo que hay muchas cosas por hacer y la performance no esta tan mal...
Sí, mi principal objeción es lo que gano frente a lo que me cuesta. Quizás luego resulte que es más fácil de lo que me imagino, pero me da mucha pereza...
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 18, 2016, 04:12:43 pm
jajaja... mal comun... la pereza... :D
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 18, 2016, 05:45:06 pm
Yo os diría que aunarais fuerzas, pero hay otro problema igual de grave que la pereza: el control del código. Todos los programadores quieren que las cosas se hagan "a su manera", y son reacios a que otros "metan mano" a "su código" :D :D :D
Título: Re:Diario de desarrollo
Publicado por: La momia que fuma en Febrero 18, 2016, 06:13:48 pm
Cuando lo tengas listo, libéralo y subo un vídeo a la web de PixTudio.


Maldito seas, ahora me dan ganas de lavarle la cara un poco, que tiene cosas muy cutres xD


Ya te contaré si tal  :)
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 18, 2016, 06:15:30 pm
Yo os diría que aunarais fuerzas, pero hay otro problema igual de grave que la pereza: el control del código. Todos los programadores quieren que las cosas se hagan "a su manera", y son reacios a que otros "metan mano" a "su código" :D :D :D

yo ya supere esa etapa, pero me parece interesante que se armen ramas diferentes de experimentacion e investigacion.. sin dudas luego aprovecharemos las experiencias para unificar en un producto... al menos yo tomare lo que crea necesario...
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 18, 2016, 06:34:31 pm
Cuando lo tengas listo, libéralo y subo un vídeo a la web de PixTudio.


Maldito seas, ahora me dan ganas de lavarle la cara un poco, que tiene cosas muy cutres xD


Ya te contaré si tal  :)

Lo que tienes que hacer es acabarlo bien y subirlo, en lugar de generar ese hype y esconder el DCB ¡maldito!
El día que te juntes con Pixel y compañía, reventais Steam. Me dais envidia (sana).

Por cierto, offtopic al canto: ¿soy yo o da la impresión de que la llama del mechero del avatar de Momia se mueve? :D
Título: Re:Diario de desarrollo
Publicado por: La momia que fuma en Febrero 18, 2016, 06:48:35 pm
Cuando lo tengas listo, libéralo y subo un vídeo a la web de PixTudio.


Maldito seas, ahora me dan ganas de lavarle la cara un poco, que tiene cosas muy cutres xD


Ya te contaré si tal  :)

Lo que tienes que hacer es acabarlo bien y subirlo, en lugar de generar ese hype y esconder el DCB ¡maldito!
El día que te juntes con Pixel y compañía, reventais Steam. Me dais envidia (sana).



Eh! Que el código lo había hecho público! xD


Tarde un poco en hacerlo porque me daba vergüenza enseñar semejante chapuza interna...es lo que pasa por empezar a lo tonto a hacer una cosa pequeña por cacharrear un poco....liarse y empezar a meterle cosas....con Invento-Fighting me paso un poco lo mismo, inicialmente iba a ser básicamente un microjuego a lo Wario Ware xD


Con los años ya me he ido volviendo mas organizado cuando programo algo con una idea mas o menos clara de lo que va a ser.


Por cierto, offtopic al canto: ¿soy yo o da la impresión de que la llama del mechero del avatar de Momia se mueve? :D


Creo que has experimentado un flashback a los tiempos de divsite antes de que me volviese HD  ;D


(https://dl.dropboxusercontent.com/u/8279424/momia%20animaci%C3%B3n.gif)
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 18, 2016, 08:36:46 pm
Sí, yo también pienso cotillear ese renderer en OpenGL :)

Bueno, el commit 80cd8a1 (https://bitbucket.org/josebagar/pixtudio/commits/80cd8a1f8d561dca31838a60caab6a28e7c902d7) implementa una comprobación que impide que se carguen mapas de un FPG si su código es >999 o <1.
Si ejecutáis el pxtp con el flag de debug "-d" (no hace falta que compiléis el DCB en modo debug) además se os mostrará un mensaje indicando que PXTP se niega a cargarlo.


Y momia: sin presión. Vamos, que si lo quieres mejorar yo encantado, pero que tampoco te estreses :)
Título: Re:Diario de desarrollo
Publicado por: FreeYourMind en Febrero 18, 2016, 09:25:37 pm
que pasas si llamas el grafico 1000 y este no existe ? Ignora todo y el juego sigue o salta error ? Lo digo por ver si la retro compatibilidad se mantiene (en fenix, bennu, se ignora y no lo pinta, y el juego sigue)
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 18, 2016, 09:30:07 pm
Define "si llamas al gráfico 1000", porfa.

Si el FPG incluye gráficos más allá del 999 la carga del mismo falla y devuelve -1.
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 18, 2016, 11:00:28 pm
dice graph=1000 y no existe un mapa con id 1000.
Título: Re:Diario de desarrollo
Publicado por: FreeYourMind en Febrero 19, 2016, 12:38:22 am
si, me referia a los fpg no mapas
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 19, 2016, 09:49:01 am
Si tu FPG tiene cualquier mapa con id < 1 o id > 999, el FPG no se va a cargar. El juego no va a salir, pero el FPG no está disponible (y sus mapas tampoco).

Si no me equivoco, ahora mismo en Bennu puede pasar lo siguiente:
* Haces el primer map_new(), que te devuelve un mapa con id 1000
* Cargas un FPG que tiene un mapa 1000 (por error del editor o lo que sea)
    - Esto provoca que ese mapa 1000 descargue el que has hecho con map_new
    - El mapa 1000 del FPG se añade a la librería del sistema (y no a la del FPG).

En PixTudio sería:
* Haces el primer map_new(), que te devuelve un mapa con id 1000
* Cargas un FPG que tiene un mapa 1000 (por error del editor o lo que sea)
    - Tu FPG no se carga. Si has ejecutado el intérprete con la opción "-d" se muestra un mensaje por consola informándote por qué.

Quizás sea un poco radical no cargar el FPG entero porque haya algún mapa con id malo y sería mejor idea parar la carga del FPG cuando se encuentre uno con ID malo, pero mantener el resto accesible.
Título: Re:Diario de desarrollo
Publicado por: FreeYourMind en Febrero 19, 2016, 09:57:56 am
Bueno la nueva lógica que pongas en tu código pues uno tiene que tenerla en cuenta, asi siendo uno de mis juegos no funcionaria recompilando con pixstudio sin hacer cambios
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 19, 2016, 12:31:46 pm
joseba, si te sirve, en el svn bennugd hice varios cambios para asegurar un poco las funciones de carga de fnt/pal/map/fpg.

saludos.
Título: Re:Diario de desarrollo
Publicado por: josebita en Febrero 19, 2016, 01:39:16 pm
Tienen buena pinta, los integraré, gracias.
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 19, 2016, 01:43:59 pm
de nada, saludos. :)
Título: Re:Diario de desarrollo
Publicado por: JaViS en Febrero 19, 2016, 03:32:15 pm
Tienen buena pinta, los integraré, gracias.


Todavia no entiendo como no estan trabajando en el mismo repositorio!  ::)
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 19, 2016, 05:52:00 pm
Cuando lo tengas listo, libéralo y subo un vídeo a la web de PixTudio.


Maldito seas, ahora me dan ganas de lavarle la cara un poco, que tiene cosas muy cutres xD


Ya te contaré si tal  :)

Lo que tienes que hacer es acabarlo bien y subirlo, en lugar de generar ese hype y esconder el DCB ¡maldito!
El día que te juntes con Pixel y compañía, reventais Steam. Me dais envidia (sana).



Eh! Que el código lo había hecho público! xD


Tarde un poco en hacerlo porque me daba vergüenza enseñar semejante chapuza interna...es lo que pasa por empezar a lo tonto a hacer una cosa pequeña por cacharrear un poco....liarse y empezar a meterle cosas....con Invento-Fighting me paso un poco lo mismo, inicialmente iba a ser básicamente un microjuego a lo Wario Ware xD


Con los años ya me he ido volviendo mas organizado cuando programo algo con una idea mas o menos clara de lo que va a ser.


Por cierto, offtopic al canto: ¿soy yo o da la impresión de que la llama del mechero del avatar de Momia se mueve? :D


Creo que has experimentado un flashback a los tiempos de divsite antes de que me volviese HD  ;D


(https://dl.dropboxusercontent.com/u/8279424/momia%20animaci%C3%B3n.gif)

He dicho "terminar y subir", encima me vas a hacer copiar el código a una carpeta, meterle el .bat de compilación que tengo para todos los proyectos y hacerle doble clic ¡Es mucho trabajo, nen! :D :D :D

Y no, no es un flashback, esa llama "HD" parece que se mueve de verdad, como esos efectos visuales que andan por internet :D
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 19, 2016, 05:59:17 pm
Tienen buena pinta, los integraré, gracias.


Todavia no entiendo como no estan trabajando en el mismo repositorio!  ::)

Yo tampoco, pero ellos mismos lo han dicho: van a experimentar diferentes enfoques... aunque me parece que a la larga, se van a copiar el un del otro y vamos a tener el mismo código en ambos sitios :D (Ojalá, quiero seguir programando para la Wiz, que ya no sale nada).
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Febrero 19, 2016, 06:43:55 pm
trabajar en equipo "conlleva una gran responsabilidad"... y yo ultimamente en ese aspecto estoy mas como Deadpool... :P
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Febrero 20, 2016, 03:04:29 am
En mi experiencia es "una condena a entenderse". Pero si empezais "yo te copio esto", "yo te tomo esto prestado", "esto me gusta, me lo apunto", a la larga os acostumbrais al estilo del otro y no sabreis dónde empieza el trabajo de uno y empieza el del otro.
A mi me pasó con los compañeros de Máster, que decían que no a todas mis ideas, y yo que no a muchas de las suyas. Al final acepté algunas y dejé que se dieran cuenta de algunos de sus errores por su cuenta, y al terminar el proyecto ya íbamos todos en la misma onda (más o menos).
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Abril 12, 2016, 05:19:20 pm
Para no abrir un hilo de sugerencias que se iba a llenar en seguida, lanzo la siguiente pregunta:
¿Se ha pensado en añadir alguna función que devuelva los datos de una región? Ya sé que hay formas de obtener dicha información mediante código (constantes, variables globales...) pero siempre me ha parecido raro un método "set" (bueno, define) sin un método "get"... aparte de otras utilidades varias (la región 0 es la resolución de pantalla, por ejemplo).
Diría lo mismo para BennuGD, pero lo pregunté en su día y creo que la respuesta fue un no, porque era muy complicado... creo recordar.
Título: Re:Diario de desarrollo
Publicado por: panreyes en Abril 12, 2016, 07:39:53 pm
He pegado un vistazo al código y no es complicado, pero sí que tiene algo de trabajo.

Setear una región se hace con una línea de código, y recuperarla costaría 4 llamadas a una función, algo tipo esto:
x1=region_get(num_region,REGION_X_START);
x2=region_get(num_region,REGION_X_END);
y1=region_get(num_region,REGION_Y_START);
y2=region_get(num_region,REGION_Y_START);

Lo más fácil sería que el usuario guardase sus tamaños de regiones (que por defecto todas son toda la pantalla) en un array propio en código DIV.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Abril 13, 2016, 01:00:48 pm
Sí, es lo que he dicho, pero vamos, añadirlo o no, como lo veais.
También me he fijado que no existe un get_text_position, pero es lo mismo: tanto al crear como al mover hay que darle unas coordenadas a los textos, y se pueden almacenar en variables globales. No me he fijado en el get_draw* (de draw_line, draw_box, draw_circle y demás primitivas gráficas).
Título: Re:Diario de desarrollo
Publicado por: josebita en Abril 21, 2016, 01:53:24 pm
Os habéis contestado vosotros :)

Los últimos commit añaden soporte para fade().
De momento es un fade falso, dado que para hacerlo de verdad necesitaría shaders y no tengo, pero bueno. Lo que hago es pintar un cuadrado del color dado de transparente a opaco en pantalla encima de todo lo demás.
Por otra parte, la función FADE() no funciona igual que lo hace en Bennu (sorry). Podéis ver la motivación y la discusión aquí (https://bitbucket.org/josebagar/pixtudio/issues/37).

Os copio-pego lo que he puesto del nuevo funcionamiento de FADE():
Citar

OK, I've uploaded commits 4cd7d54 & a418b25 which includes a dirty hack to emulate fades. The problem here is that in order to correctly implement Bennu's FADE function I need to use shaders and I'm not using them as of now.

As long as you fade.in and out to/from the same colour, things should work approximately right BUT this is not the same implementation that BennuGD uses. I'm only alpha-blending a filled rectangle of the size of the window.

Now, there's more drawbacks: I've had to change the behaviour of the fade function. It now works as follows:

FADE(int r, int g, int b, int a, int speed);

So you must specify the alpha value you're going to be fading to. So, to fade into red and back you'd do:

import "mod_video"
import "mod_map"

process int main()
begin
    set_mode(640, 480);
    set_fps(60, 0);

    // Put something onscreen to appreciate the fade
    graph = png_load("imshow.png");
    x = 320;
    y = 240;
    size = 50;

    fade(255, 0, 0, 255, 1);

    while(fading)
        frame;
    end

    fade(255, 0, 0, 0, 1);
    while(fading)
        frame;
    end
end

On BennuGD, r, g & b go 0-200 and they have special meanings; here they're just colour components.

Sorry it's not a real fix; hope it helps...

También he comprobado que las funciones de carga en segundo plano vuelven a funcionar.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Abril 21, 2016, 07:24:11 pm
Hombre, es más que comprensible, es que la potencia del FADE de DIV es más de lo que parece. De hecho, en el primer juego que hice, para la presentación empezaba con un fade(0,0,100,2) que me dejaba la portada en todos azules, y tras aparecer el título, ya hacía el fade(100,100,100,2) para recuperar los colores reales.
Siempre eché de menos la posibilidad de hacer lo mismo para tonos amarillos, naranjas, violetas, etc, pero claro, eso ya son efectos de paleta/blending, y no una multiplicación de valores de componentes como hacía el FADE.

Tú a tu ritmo, cuando se pueda, pues se podrá ;)

PD: Dejando el valor de alpha como parámetro de la función se pueden hacer cosas graciosas si se juega con valores intermedios. Por lo general debería dejarse este parámetro como un bool, pero así mejor :P
Título: Re:Diario de desarrollo
Publicado por: josebita en Abril 22, 2016, 10:43:49 am
Hombre, es más que comprensible, es que la potencia del FADE de DIV es más de lo que parece. De hecho, en el primer juego que hice, para la presentación empezaba con un fade(0,0,100,2) que me dejaba la portada en todos azules, y tras aparecer el título, ya hacía el fade(100,100,100,2) para recuperar los colores reales.
Siempre eché de menos la posibilidad de hacer lo mismo para tonos amarillos, naranjas, violetas, etc, pero claro, eso ya son efectos de paleta/blending, y no una multiplicación de valores de componentes como hacía el FADE.

Tú a tu ritmo, cuando se pueda, pues se podrá ;)

PD: Dejando el valor de alpha como parámetro de la función se pueden hacer cosas graciosas si se juega con valores intermedios. Por lo general debería dejarse este parámetro como un bool, pero así mejor :P
Sí, se podría dejar como un bool. No lo pensé, pero igual es útil para algo hacerlo "a medias".
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Abril 24, 2016, 03:03:51 pm
Pues imagina: efecto "oscurecimiento", ¿puesta de sol?, sala que se llena de bruma o de gas... y si le añadimos efectos con los blits aditivos/sustractivos pues tendremos linternas y... bueno, no sé, es cuestión de ser imaginativos :D :D :D
Título: Re:Diario de desarrollo
Publicado por: josebita en Abril 24, 2016, 05:58:43 pm
 :)

Imagino que se puede juntar con las nuevas variables locales de modulación de color (modr, modg, modb) para obtener efectos chulos.
Título: Re:Diario de desarrollo
Publicado por: josebita en Abril 27, 2016, 02:48:58 pm
El commit 6ca9a16 (https://bitbucket.org/josebagar/pixtudio/commits/6ca9a165f6906c2f7ffa37005e6c96e8463a60e3) hace que se muestre un mensaje de error gráfico en caso de que no se encuentre el fichero main.dcb dentro del APK. Hasta ahora el mensaje se mostraba por la consola.
Algo al estilo de lo siguiente:
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3460)
No es que sea gran cosa, pero imagino que ayudará a los nuevos.
Título: Re:Diario de desarrollo
Publicado por: l1nk3rn3l en Abril 27, 2016, 04:31:22 pm
ERROR EN : mod_dir_symbols.h

DOBLE DEFINICION DE funcion

 CD(string)

eliminar la segunda definicion... 
el error causa que un juego no se pueda compilar a dcb...  ()

error: Various conflicting versions of CD found




aqui la linea a borrar resaltada...



DLSYSFUNCS __pxtexport( mod_dir, exported_functions)[] = {
    FUNC( "CD"      , ""  , TYPE_STRING , moddir_cd     ),
    FUNC( "CD"      , "S" , TYPE_STRING , moddir_chdir  ),
    FUNC( "CHDIR"   , "S" , TYPE_INT    , moddir_chdir  ),
    FUNC( "MKDIR"   , "S" , TYPE_INT    , moddir_mkdir  ),
    FUNC( "RMDIR"   , "S" , TYPE_INT    , moddir_rmdir  ),
    FUNC( "GLOB"    , "S" , TYPE_STRING , moddir_glob   ),
    FUNC( "CD"      , "S" , TYPE_STRING , moddir_chdir  ),
    FUNC( "RM"      , "S" , TYPE_INT    , moddir_rm     ),

    FUNC( "DIROPEN" , "S" , TYPE_INT    , moddir_open   ),
    FUNC( "DIRCLOSE", "I" , TYPE_INT    , moddir_close  ),
    FUNC( "DIRREAD" , "I" , TYPE_STRING , moddir_read   ),

    FUNC( "GET_BASE_PATH", ""   , TYPE_STRING , moddir_get_basepath ),
    FUNC( "GET_PREF_PATH", "SS" , TYPE_STRING , moddir_get_prefpath ),

    FUNC( 0         , 0   , 0           , 0 )
};
Título: Re:Diario de desarrollo
Publicado por: josebita en Abril 27, 2016, 04:43:45 pm
Solucionado en el commit ce423f0 (https://bitbucket.org/josebagar/pixtudio/commits/ce423f061831239094794f19595c5dfaad54544c). Muchas gracias por el aviso.
Título: Re:Diario de desarrollo
Publicado por: l1nk3rn3l en Mayo 04, 2016, 12:01:00 am
se me olvido decir joseba que el codigo de la libreria mod_ext_library para incluirla en la oficial..
esta en descargas  es una version preliminar para usar librerias externas
tendra cambios en el futuro ya que estamos afinando la parte de html
haber como queda definitivo..

https://sourceforge.net/projects/coldev/files/bennugd2_Pixtudio/v1.2/tools%20source/

sobre como usarla se incluye un sdk preliminar para windows(descargar ejemplos)

https://sourceforge.net/projects/coldev/files/bennugd2_Pixtudio/v1.2/
Título: Re:Diario de desarrollo
Publicado por: emov2k4 en Mayo 05, 2016, 03:07:38 pm
Estimados, 
Excelente trabajo... me leí desde el primer post... nunca habia leido tanto...

Pero en ninguna parte vi que algunas funciones se escriban al revés...
load_fpg = fpg_load
define_region = region_define
etc... etc.....

En la documentacion siguen saliendo como era antes...
https://pixtudio.org/docs/


Título: Re:Diario de desarrollo
Publicado por: l1nk3rn3l en Mayo 06, 2016, 06:23:35 am
Cordial saludo, JOSEBA hay un error en el ultimo commit
la version android no funciona correctamente

se compila todo ok pero al ejecutar la app crasheaaa

ademas al manifiesto le falta esto...
android:installLocation="auto"

por favor pruebalo haber si es nuestro build o en verdad es un error...

por el momento estamos usando el commit "ac1431e"  2016-04-05 que es el que funciona android...


Gracias
Título: Re:Diario de desarrollo
Publicado por: l1nk3rn3l en Mayo 06, 2016, 09:58:29 pm
parece que es la version release .. compilar en debug no crashea en android...

el apk se instala ok en debug..

el apk no se instala en release..


en algunos foros recomiendan  poner  la linea:   APP_PLATFORM=android-19
en el application.mk
pero igual el apk no se instala en android... debe ser un error del ndk
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Mayo 07, 2016, 12:44:07 am
cuando pasa eso, es algun pise de memoria... quizas algun puntero no chequeado, alguna variable liberada y no puesta a NULL y que luego se intenta usar...

josebita esta perdido, hace ya unos cuantos dias le mande un PM y nada...
Título: Re:Diario de desarrollo
Publicado por: l1nk3rn3l en Mayo 07, 2016, 03:48:53 am
cuando pasa eso, es algun pise de memoria... quizas algun puntero no chequeado, alguna variable liberada y no puesta a NULL y que luego se intenta usar...

josebita esta perdido, hace ya unos cuantos dias le mande un PM y nada...

Gracias por contestar.. esperare haber que dice joseba entonces..

mientras usaremos debug porque release no se puede...
Título: Re:Diario de desarrollo
Publicado por: josebita en Mayo 21, 2016, 11:02:22 pm
Buenas:

Ando algo liado con temas personales (llevo una temporadita un poco complicada). He visto tu mensaje, Splinter. Te respondo en cuanto vuelva a Madrid.
Y gracias por el aporte. Lo revisaré, aunque la última vez que miré sí que funcionaba en Android.
Agradecería un extracto del logcat de la ejecución, a ver qué puede ser.
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Mayo 22, 2016, 01:55:08 am
Buenas:

Ando algo liado con temas personales (llevo una temporadita un poco complicada). He visto tu mensaje, Splinter. Te respondo en cuanto vuelva a Madrid.
Y gracias por el aporte. Lo revisaré, aunque la última vez que miré sí que funcionaba en Android.
Agradecería un extracto del logcat de la ejecución, a ver qué puede ser.

espero resueltas tus temas personales pronto y que no sean algo grave.
tranquilo, no te preocupes mucho por mi mensaje, muchas gracias!
Título: Re:Diario de desarrollo
Publicado por: l1nk3rn3l en Mayo 25, 2016, 08:59:21 pm
Encontrado...  el error ...

el ndk y ant no firman correctamente el apk .. (inclusive asignando claves en el local.properties) por lo tanto no se instala cuando usas la version release...  solo funciona debug porque el ndk incluye automaticamente una firma DEBUG en el apk...

la solucion para release....  :

crear el apk normalmente con el ndk y el ANT...

despues firmar manualmente con el jarsigner desde un archivo bat...

ahora funcionara en android...

(tambien modificamos el application.mk   no se si ello tambien corregir el error) usamos ndk11c
APP_ABI := armeabi-v7a
APP_OPTIM=release
NDK_TOOLCHAIN_VERSION=4.9
APP_CFLAGS:= -std=c11

eso es todo joseba.....



en el proximo PIXTUDIO PACK incluiremos el empaquetador con el error corregido...   
Título: Re:Diario de desarrollo
Publicado por: josebita en Mayo 27, 2016, 09:47:05 am
Muchas gracias por el aporte :)
Título: Re:Diario de desarrollo
Publicado por: fulgorelizz en Junio 30, 2016, 09:51:33 am
El commit f5eee19 (https://bitbucket.org/josebagar/pixtudio/commits/f5eee195a076a4c9aba5ebc0268b54748608bc4c) añade una nueva variable global
Código: [Seleccionar]
BYTE SCALE_QUALITY;y dos nuevas constantes:
Código: [Seleccionar]
BYTE SCALE_NEAREST=0;
BYTE SCALE_LINEAR=1;

Estableciendo esa variable al valor deseado antes de hacer un set_mode establece el tipo de escalado a usar y, por defecto se usa escalado lineal, que entiendo es lo que alguien que no sepa de qué va el tema espera.
Tengo que probarlo en Android, eso sí.

La imagen de la izquierda usar escalado lineal y la de la derecha nearest-neighbour:
(http://forum.bennugd.org/index.php?action=dlattach;topic=4148.0;attach=3317)

Momia, he metido el ejemplo que me pasaste al repositorio (incluído el gráfico de Invento-Man). ¿Puedo dejarlo o lo quito?.

[Edito] También he hecho que PixTudio sólo trate de leer mediante la librería zlib archivos que estén comprimidos mediante gzip. Hasta ahora los ficheros siempre se trataban de cargar mediante zlib primero y creo que eso provocaba fallos en la lectura de ciertos recursos.

esto va de pelos!! supongo que en un futuro se agregaran nuevas variables a SCALE_QUALITY, hay como 4 algoritmos de escalado, pero bien, se que no es facil desarrollar estas cosas, solo comento! por cierto, se debe a esto que mis PNGs a veces tengan bordecillos blancos??? cuando uso el SCALE_QUALITY=0 no le salen los bordecillos!!

otra cosilla, esta version de pix solo soporta 32bits cierto?? xD
Título: Re:Diario de desarrollo
Publicado por: josebita en Noviembre 27, 2016, 10:24:40 pm
He cambiado la fuente del sistema.
Hasta ahora se usaba la misma fuente bitmap que BennuGD, pero la verdad es que la tuve que convertir a 32bpp y algo debí hacer mal porque se veía muy borrosa. Además, en pantallas con alta densidad de píxeles (como los móviles) no se ve nada porque el texto es demasiado pequeño (y me hago viejo y cada vez veo menos de cerca...)

Total, que he metido como fuente del sistema Roboto (http://"https://fonts.google.com/specimen/Roboto") en formato TTF. Es decir: que se puede escalar con ttf_set_size(0, [tamaño]); y no se verá borrosa.
Título: Re:Diario de desarrollo
Publicado por: alicesimu en Noviembre 28, 2016, 12:28:16 am
Es buena noticia, graciaasss
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Noviembre 28, 2016, 04:17:55 am
He cambiado la fuente del sistema.
Hasta ahora se usaba la misma fuente bitmap que BennuGD, pero la verdad es que la tuve que convertir a 32bpp y algo debí hacer mal porque se veía muy borrosa. Además, en pantallas con alta densidad de píxeles (como los móviles) no se ve nada porque el texto es demasiado pequeño (y me hago viejo y cada vez veo menos de cerca...)

Total, que he metido como fuente del sistema Roboto (http://"https://fonts.google.com/specimen/Roboto") en formato TTF. Es decir: que se puede escalar con ttf_set_size(0, [tamaño]); y no se verá borrosa.

yo creo que la fuente del sistema deberia ser interna y no depender de objetos externos y menos de terceros... total puedes cargar fuentes con el modulo de ttf... quizas estaria bien añadir la funcionalidad de reemplazar el fuente del sistema por otro, que no sea fijo, y de poder recuperarlo si uno lo desea (descargando previamente el reemplazo)

no se, es una idea...
Título: Re:Diario de desarrollo
Publicado por: FreeYourMind en Noviembre 28, 2016, 08:23:55 am
despues si falla ni texto vas a tener en pantalla  ;D
Título: Re:Diario de desarrollo
Publicado por: josebita en Noviembre 28, 2016, 09:41:31 am
yo creo que la fuente del sistema deberia ser interna y no depender de objetos externos y menos de terceros... total puedes cargar fuentes con el modulo de ttf... quizas estaria bien añadir la funcionalidad de reemplazar el fuente del sistema por otro, que no sea fijo, y de poder recuperarlo si uno lo desea (descargando previamente el reemplazo)

no se, es una idea...
Perdón, no me expliqué con claridad. La fuente del sistema ha cambiado a una fuente en TTF, pero ese TTF va integrado en el ejecutable de PixTudio, de la misma forma que la fuente del sistema de BennuGD va en un bitmap que va integrado en su ejecutable.

La gracias está en que a pesar de ser integrada es vectorizado, de forma que se va a ver bien a casi cualquier resolución.

Por si a alguien le interesa, he dejado el pequeño script Python con el que he generado la cabecera en la propia cabecera:

https://bitbucket.org/josebagar/pixtudio/src/761deb9bc719141c37f0bfa9fe5d504ae982e9e7/modules/libfont/systemfont.h?at=bigmap
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 05, 2016, 10:04:38 am
He añadido un par de funciones para obtener el nombre de la familia y el nombre de estilo de la fuente.
Ahora a partir de un fichero TTF es posible agrupar "ficheros" TTF en función de su familia.
He añadido el siguiente ejemplo a la suite de ejemplos de PixTudio (http://"https://bitbucket.org/josebagar/pixtudio/src/46b53541eada/examples/?at=bigmap"):
Código: [Seleccionar]
import "mod_say"
import "mod_video"
import "mod_map"

Process main()
Private
    int ttf;
Begin
    // Load a TTF file and print its family and style names
    ttf = ttf_load("ttf/DejaVuSans.ttf");
    say("System font:        '" + ttf_get_family(0) + "'->'" + ttf_get_style(0) + "'");
    say("ttf/DejaVuSans.ttf: '" + ttf_get_family(ttf) + "'->'" + ttf_get_style(ttf) + "'");
    if(OS_ID == OS_WIN32)
        fnt_unload(ttf);
        ttf = ttf_load("c:/Windows/Fonts/arial.ttf");
        if(ttf > 0)
            say("c:/Windows/Fonts/arial.ttf: '" + ttf_get_family(ttf) + "'->'" + ttf_get_style(ttf) + "'");
        end
        fnt_unload(ttf);
        ttf = ttf_load("c:/Windows/Fonts/arialbd.ttf");
        if(ttf > 0)
            say("c:/Windows/Fonts/arialbd.ttf: '" + ttf_get_family(ttf) + "'->'" + ttf_get_style(ttf) + "'");
        end
        fnt_unload(ttf);
        ttf = ttf_load("c:/Windows/Fonts/arialbi.ttf");
        if(ttf > 0)
            say("c:/Windows/Fonts/arialbi.ttf: '" + ttf_get_family(ttf) + "'->'" + ttf_get_style(ttf) + "'");
        end
        fnt_unload(ttf);
        ttf = ttf_load("c:/Windows/Fonts/ariali.ttf");
        if(ttf > 0)
            say("c:/Windows/Fonts/ariali.ttf: '" + ttf_get_family(ttf) + "'->'" + ttf_get_style(ttf) + "'");
        end
        fnt_unload(ttf);
    end
End
El código escribe por consola:
Código: [Seleccionar]
System font:        'Roboto'->'Regular'
ttf/DejaVuSans.ttf: 'DejaVu Sans'->'Book'
c:/Windows/Fonts/arial.ttf: 'Arial'->'Regular'
c:/Windows/Fonts/arialbd.ttf: 'Arial'->'Bold'
c:/Windows/Fonts/arialbi.ttf: 'Arial'->'Bold Italic'
c:/Windows/Fonts/ariali.ttf: 'Arial'->'Italic'
Título: Re:Diario de desarrollo
Publicado por: SplinterGU en Diciembre 06, 2016, 03:24:42 pm
muy buenos progresos! felicitaciones!
Título: Re:Diario de desarrollo
Publicado por: JaViS en Diciembre 06, 2016, 06:35:36 pm
Muy bueno!!
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 06, 2016, 06:38:26 pm
muy buenos progresos! felicitaciones!
¡Muchas gracias! toma prestado tanto cuanto quieras para BennuGD2, por supuesto :)

Otra cosa nueva: el commit 79aadb7 (http://"https://bitbucket.org/josebagar/pixtudio/commits/79aadb72b694e675035e42072bf7226ffc956573") añade soporte para leer imágenes en formato JPEG mediante la función jpg_load().

Algunas explicaciones al respecto:

[Edito] Tenéis un ejemplo simplón de uso aquí (http://"https://bitbucket.org/josebagar/pixtudio/src/79aadb72b694e675035e42072bf7226ffc956573/examples/23_jpg_support.prg?at=bigmap&fileviewer=file-view-default").
Título: Re:Diario de desarrollo
Publicado por: alicesimu en Diciembre 06, 2016, 07:37:16 pm
muy buenos progresos! felicitaciones!
¡Muchas gracias! toma prestado tanto cuanto quieras para BennuGD2, por supuesto :)

Otra cosa nueva: el commit 79aadb7 (http://"https://bitbucket.org/josebagar/pixtudio/commits/79aadb72b694e675035e42072bf7226ffc956573") añade soporte para leer imágenes en formato JPEG mediante la función jpg_load().

Algunas explicaciones al respecto:
  • Sólo se pueden leer imágenes JPEG, no se pueden escribir a disco. Para eso hay que seguir usando MAP o PNG.
  • Llevaba algún tiempo dubitativo sobre si debía incluir esto o no, pero me he puesto a mirar la librería TMX (http://"https://github.com/baylej/tmx") para cargar mapas tileados (que ya me dijisteis que era importante) y he visto que los propios ejemplos tiran de JPEG en muchos casos, así que me he animado a implementarlo.
  • No he acabado con mod_steam, sólo estoy rumiando cómo continuar con ella y he aprovechado para ésto.

[Edito] Tenéis un ejemplo simplón de uso aquí (http://"https://bitbucket.org/josebagar/pixtudio/src/79aadb72b694e675035e42072bf7226ffc956573/examples/23_jpg_support.prg?at=bigmap&fileviewer=file-view-default").

Esta muy bien, la verdad, como segunda opcion se puede usar JPG para algunas cosas, en vez de PNG, por ejemplo.
Yo estoy conforme que se pueda leer este formato de imagen tan popular!
Título: Re:Diario de desarrollo
Publicado por: josebita en Diciembre 07, 2016, 08:52:13 pm
Muchas gracias :)

A ver si saco tiempo para añadir soporte para mapas tileados pronto.
Título: Re:Diario de desarrollo
Publicado por: Drumpi en Diciembre 07, 2016, 09:18:42 pm
Bueno, JPG es popular y uno de los estandares más utilizados... pero yo no lo recomendaría para hacer videojuegos, a menos que se esté usando gráficos hiper-realistas: los "JPEG artifacts" pueden ayudar a darle naturaleza más o menos orgánica a las texturas, pero como te de por trabajar en pixelart, el formato te va a arruinar la vida, porque una imágen de 2 colores la convierte en una de 300 al "suavizar" (o más bien, meter ruido en) los bordes.

Lo de los mapas tileados es MUY interesante. No debería ser difícil de implementar, creo. Lo del formato sí que sería interesante estudiarlo. No voy a iniciar una discusión "el formato X es el mejor" (especialmente teniendo uno propio ^^U) pero sí que valoraría tener un formato propio y, aparte, librerías para cargar los más interesantes, y funciones para crearlos en memoria a base de MAPs y FPGs :P
Título: Re:Diario de desarrollo
Publicado por: daltomi en Octubre 11, 2017, 05:52:09 am
Bueno, como este es el diario de desarrollo, les cuento algunas cosas.

Estuve leyendo algunas incidencias de Pixtudio en bitbucket y estuve tratando de implementar algunas soluciones.

1) Utilizar cuadro de mensajes  de SDL.
(http://www.zimagez.com/miniature/screenshotfrom2017-10-0915-24-04.png) (http://www.zimagez.com/zimage/screenshotfrom2017-10-0915-24-04.php)

Ejemplo:
Código: [Seleccionar]
import "mod_video"
import "mod_wm"
import "mod_key"
import "mod_text"
import "mod_say"

Process main()
private
    int buttonid;
Begin
    set_mode(640, 480, MODE_WINDOW);
    write(0, 320, 240, 4, "Press enter");
    while(! key(_enter))
        FRAME;
    end

    while(buttonid != MB_OK)
    buttonid = messagebox(MESSAGEBOX_INFORMATION, "Message title", "Show other MessageBox?", MB_YES | MB_NO);
    if (buttonid == MB_YES)
    buttonid = messagebox(MESSAGEBOX_WARNING, "Message title", "Exit ?", MB_OK | MB_CANCEL | MB_RETRY);
    end
        FRAME;
    end
End

(Hmm, el MESSAGEBOX_INFORMATION no debería hacer algo? no me había dado cuenta  ;D)

Combinaciones posibles:
Código: [Seleccionar]
MB_YES | MB_NO
MB_YES | MB_NO | MB_CANCEL
MB_YES | MB_NO | MB_RETRY
MB_OK | MB_CANCEL
MB_OK | MB_CANCEL | MB_RETRY
He individuales, es decir, solamente MB_OK por ejemplo.

Funciona, pero el fondo de la ventana no se actualiza, osea que al mover el cuadro de mensaje se dibuja el arrastre en la ventana, nada lo deje ahí y no mire más. Y para colmo no se nada del lenguaje de bennu, frame y no se que, le robe un ejemplo a Pixtudio y eso :D

2) En linux, poder usar enlaces(accesos directos) hacia el programa pxtp con nombre diferente a pxtp.
Por ejemplo un archivo de enlace.
Código: [Seleccionar]
/home/yope/pxtp   -> /usr/bin/pxtp

Ahora le puedes colocar el nombre que quieras, por ejemplo space_war
Código: [Seleccionar]
home/yope/space_war  -> /usr/bin/pxtp
Y no mas segfault ;)

Todo muy lindo, pero después ví que existen esos archivos standalone no se que:
Código: [Seleccionar]
standalone = (pxtrtm_strncmpi(appexename, "pxtp", 4) == 0);
Faltaría probar eso.

Nada, por charlar.

https://bitbucket.org/daltomi/pixtudio/branches/ (https://bitbucket.org/daltomi/pixtudio/branches/)



Título: Re:Diario de desarrollo
Publicado por: JaViS en Octubre 11, 2017, 01:19:22 pm
muy interesante :)