Portando proyecto Montezuma a PiXTudio

Started by Drumpi, January 10, 2016, 02:10:43 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Por cierto, Drumpi. ¿Por qué no pruebas el nuevo soporte para TTF en PixTudio?.
Píllate una fuente monoespaciada bonica y prueba con ella, debería ir bien.
Puedes meter la parte de la carga de la fuente en un #if tal que así:
#if __PXTP__
fnt = ttf_load("ttf/monospaced.ttf");
ttf_set_size(fnt, loquetoque);
#else
fnt = fnt_load("fnt/guarever.fnt");
#endif

Por lo demás debería ir igual.

Drumpi

Quote from: josebita on February 18, 2016, 09:28:02 PM
Tengo un plan para el heissenbug.

En 2016 un comando compuesto por cuatro de los mejores bugs del PiXTudio fueron notificados por un segmentation fault que no podía ser "debugeado". No tardaron en fugarse de la prisión en la que se encontraban recluídos. Hoy, buscados todavía por Josebita, sobreviven como soldados de fortuna. Si tiene usted un problema y se los encuentra, quizá pueda contratarlos: El Equipo H

XD XD XD
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Drumpi

Quote from: josebita on February 19, 2016, 09:41:04 AM
Por cierto, Drumpi. ¿Por qué no pruebas el nuevo soporte para TTF en PixTudio?.
Píllate una fuente monoespaciada bonica y prueba con ella, debería ir bien.
Puedes meter la parte de la carga de la fuente en un #if tal que así:
#if __PXTP__
fnt = ttf_load("ttf/monospaced.ttf");
ttf_set_size(fnt, loquetoque);
#else
fnt = fnt_load("fnt/guarever.fnt");
#endif

Por lo demás debería ir igual.

Vale, te lo puedo ir mirando en algún rato que tenga. Lo del port era más experimento que utilidad al final, ya dije que el proyecto inicialmente ha sido diseñado para Wiz, y quiero mantenerlo así todo lo posible (ya descarté lo del set de gráficos de 32x32 pixels en favor de simplificar las cosas :P).
Otra cosa es que salga port de PiXTudio a Wiz, o que se haga una versión para PC/Android usando PiXTudio pero manteniendo la compatibilidad de lo que se genere (habitaciones, niveles...) con la versión de BennuGD. Este fork me ha pillado a pie cambiado y no termino de decidirme :D

Pero sí, algo para probar las fuentes puedo hacer. Quizás podría intentar de nuevo crear un conversor de FNTs/TTFs o algo así, que todavía no he encontrado ninguno que funcione bien :D :D :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

Bueno, lo de generar un fnt a partir de TFT tengo previsto integrarlo, pero me refería a que probarás a usar el ttf directamente, que debería ir bien y no sé si lo ha probado alguien aún...

Drumpi

Ok, puedo cambiar load_fnt por load_ttf con la fuente original de la que saqué la que tengo ahora... o buscar una fuente del sistema para copy/paste.
Además, me gustaría encontrar una fuente pixelada para mis videos. Usé la que utiliza kubuntu para la consola de comandos, pero al ponerla de tamaño 40 se ha redondeado y no se ha ensanchado :(
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

#50
Lo que te digo: puedes meter el código específico de PixTudio en un ifdef y así no metes incompatibilidades en el código.


Aquí hay una, pero me han salido un montón en gugel:
http://jelloween.deviantart.com/art/Font-CHARRIOT-31137793

Drumpi

Es una de mis asignaturas pendientes, las directivas esas del compilador no las termino de entender.
Mensajes atrás has puesto:
#if __PXTP__
¿__PXTP__ es una etiqueta, una variable o qué? ¿Y dónde está definida? ¿Y cómo sé que existe ese valor?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

Quote from: Drumpi on February 20, 2016, 06:17:13 PM
Es una de mis asignaturas pendientes, las directivas esas del compilador no las termino de entender.
Mensajes atrás has puesto:
#if __PXTP__
¿__PXTP__ es una etiqueta, una variable o qué? ¿Y dónde está definida? ¿Y cómo sé que existe ese valor?
Lo puse de cabeza y no es correcto.
La sintaxis correcta sería algo así:
import "mod_say"

Process main()
Private
    string str;
Begin
#ifdef __PXT__
    str = "You're running PixTudio";
#endif
#ifdef __BGD__
    str = "You're running BennuGD";
#endif
    say(str);
End

Las variables de  preprocesador se definen, por lo general, mediante la línea de comandos al llamar al compilador, pero hay algunas que las predefine BennuGD/PixTudio.
De esa forma, lo que pongas dentro del bloque #ifdef __PXT__ sólo se ejecutará en PixTudio y lo que esté dentro del otro sólo se ejecutará en Bennu.

Es decir: no son como variables normales que el intérprete evalua. Éstas hacen que el compilador sólo tenga en cuenta ciertas partes de tu código.

De esa forma, puedes hacer:
import "mod_say"
import "mod_video"
import "mod_text"
import "mod_map"
import "mod_key"

Process main()
Private
    int fnt;
Begin
#ifdef __PXT__
    fnt = ttf_load("font.ttf");
    ttf_set_size(fnt, 40);
#endif
#ifdef __BGD__
    fnt = fnt_load("font.fnt");
#endif
    set_mode(800, 600);
    write(fnt, 400, 300, 1, "Hello, world!");
    while(!key(_esc))
        FRAME;
    end
End

Drumpi

Ok, le he echado un ojo a estas directivas en otros lenguajes, y más o menos lo he entendido.
Lo que tenia que saber era eso, que algunas viene predefinidas por el lenguaje, sólo necesito encontrar dicha lista.

Le echaré un vistazo a ver qué se puede hacer, pero no las tengo todas conmigo. La última vez que intenté manejar cierto código entre dos lenguajes, quedó todo embarullado y lleno de bugs.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)