Bennu2Java 0.2

Started by proteo, March 24, 2014, 04:56:00 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind


proteo

Quote from: FreeYourMind on April 03, 2014, 10:27:21 AM
felicidades, gracias por todo

Muchas gracias, espero que cuando este listo, este programa sea de utilidad para todos.

proteo

Agrego la posibilidad de generar .jar ejecutables directamente desde Bennu2Java  ;D, En el primer post del hilo encontraran toda la info necesaria.

Saludos.


proteo

Actualizacion 07/04/2014

Buenas, hoy le estuve agregando algunas instrucciones mas a Bennu2Java, no la he subido porque tenia un problema con el Jar que mañana solucionare. Mientras tanto les hago un recuento de las instrucciones que soporta


  • begin
  • case
  • const
  • else
  • elseif
  • end
  • float
  • for
  • frame
  • from
  • function
  • global
  • if
  • int
  • local
  • loop
  • private
  • process
  • repeat
  • return
  • string
  • switch
  • until
  • while


Variables locales especiales


  • mouse
  • father

Rutinas


  • load_png
  • signal
  • collision(solo pasando por parametro un id de proceso, luego tratare de solucionarlo, tengo problemas porque en Bennu, como es C/C++ una variable con un valor no negativo en un if se toma como una expresion verdadera. En java las unicas variables que se toman como expresion verdaderas por si solas son las boleanas. Por lo tanto la rutina Collision en bennu se puede utilizar para obtener el id de un proceso que colisiona como para verificar si una colision es cierta. Como veran en java esto se complica un poco pero ya vere como tratarlo).

Mañana ni bien pueda cuelgo la nueva version. Una vez que esten implementadas todas las instrucciones basicas del lenguaje me gustaria que me comentaran, mas alla de load_fpg, que rutinas necesitarían tener implementadas primero. Pensaba en implementar las de mapas como new_map o put, pero me comentaron que trabajar con mapas es muy lento por lo que deduzco que no se utilizan demasiado. Osea, a la larga van a estar todas las rutinas implementadas pero estaria bueno sacar primero las mas utilizadas si es que esta dentro de las posiblidades actuales del proyecto.

Saludos.



Erkosone

Bueno, probado.


Haber, he metido todo lo necesario en la ruta: c:\B2J\ "con la ultima versión de LibGDX 1.0".


He configurado el path temp y lib en el archivo ini.


Al ejecutar tu aplicación busco el archivo prg, le doy a generar java y me genera correctamente los archivos java, luego le doy a generar JAR y no me lo genera pero no me da error.
Que puede ser?

Erkosone

Oye proteo, te propongo algo haber si lo ves bien y quieres implementar una prueba de esta manera.


Muchos o practicamente todos trabajamos con Notepad++, es una herramienta libre y buena, por que no haces simplemente 2 bats para:
1 - Compilar, empaquetar y ejecutar "en windows".
2 - Compilar, empaquetar e instalar "en Android".


Podríamos partir de una base bien simple como esta:
Estructura de un juego cualquiera programado en bennuGD:
.\MyGame
\data




Osea, simplificando al máximo, el juego programado en BennuGD está dentro de un folder llamado "MyGame" o cualquier otra cosa, pero imperativamente y a excepción del archivo/s .prg todo recurso del juego/aplicación deberá estar contenido en la sub carpeta "data".


Osea:


myJuego.prg
data\main.fpg
data\music_1.ogg
etc etc etc...


Entonces simplemente con llamar a tus bats desde el notepad así: B2Jwin.bat "c:\bennugd\projects\MyGame\MyJuego.prg" ya estaría todo listo.


Sería crear un paquete con todo lo que va a hacer falta, librerías, bats etc etc.. y añadir 2 accesos directos al notepad++, sería mas cómodo que ejecutar una aplicación externa y andar buscando directorios y eso.


Sobre donde guardar el .apk, .jar o .java, pues al ejecutar el bat, en la misma carpeta del juego se crea una sub carpeta llamada "binaries" y dentro de ella otra llamada "release" y ale.. tood lo que se cree con tu sistema se queda ahí.




Que te parece la idea?

proteo

Quote from: Erkosone on April 08, 2014, 08:56:24 AM
Bueno, probado.


Haber, he metido todo lo necesario en la ruta: c:\B2J\ "con la ultima versión de LibGDX 1.0".


He configurado el path temp y lib en el archivo ini.


Al ejecutar tu aplicación busco el archivo prg, le doy a generar java y me genera correctamente los archivos java, luego le doy a generar JAR y no me lo genera pero no me da error.
Que puede ser?

Buenas, tenes que usar la version de libgdx que esta en los ejemplos de JDiv. JDiv funciona con la version 0.8 y la ultima version de LibGdx cambio algunas cosas que traen problemas con JDiv.

Una vez que le das a "Generar" tenes que seleccionar una ruta para los .java y otra ruta para el .jar. Si el programa no te informo nada cuando lo ejecutaste quiere decir que encontro todas las librerias por lo que pareces tener todo bien configurado. Lo unico que me queda pensar es que no tengas la ruta "bin" de java en la variable de entorno path y la ruta raiz de java en la variable de entorno JAVA_HOME (Esto siempre que estes trabajando con windows).
Proba abriendo el simbolo de sistema y ejecutando "javac" y "jar" desde donde estas parado. Si encuentras ambos luego vemos de hacer otras verificaciones.

Muchas gracias por la dedicacion.
Saludos.

proteo


proteo

Buenas, una aclaracion que no hice cuando subí la nueva version, cuando definan una variable que va a albergar un ID de proceso, Bennu2Java necesita que se le indique que esa variable es para un Id de proceso de la siguiente forma

Ejemplo



int id_proceso; // PID



Agregando ese comentario a continuación basta. En este momento estoy trabajando sobre JDiv para poder utilizar los FPG, estoy tratando de que estos archivos no requieran conversión previa.

Saludos.



proteo

Buenas gente, como va? Les comento que esta ultima version tiene una serie de problemas en los que estoy trabajando. Se los comento para que los tengan en cuenta


  • Si utilizan alguna palabra reservada como parte del nombre de un identificador (sea variable, proceso o funcion, Ej. fromHere o totalLife, toma "from" y "to" respectivamente)  van a tener problemas. Me están fallando las expresiones regulares y por mas que indique ^to$ no me funciona. Trabajo en ello.
  • Cuando realicen invocaciones a procesos que no tienen parametros, en lugar de ser traducidos a new Proceso(this); van a quedar new Proceso(this)), este ")" que sobra debe ser una tonteria. Si quieren probar de todas formas, a todos sus procesos agregenle un parametro aunque no lo utilicen.

Espero tener todo esto resuelto pronto. Tambien la proxima version vendra con soporte para archivos Fnt de 8 bits (Los que se generan con el FNT Editor del Bennu Pack) y por supuesto con soporte para utilizar "write".

Disculpen estos bugs obvios, se me pasaron en las pruebas.
Saludos.