Wellcome to Android

Desde hace un tiempo vengo ya con ganas de empezar a hacer algo en Android, y llevo unos días probando distintos frameworks orientados al desarrollo de juegos, tampoco os creáis que he probado todo lo habido, de momento solo 3, así que os voy a contar con cual me he centrado y como funciona. Os hablo de LibGDX

Libgdx se presenta como una librería para desarrollar juegos cross-platform, y es que al estar desarrollada en java funciona en windows, mac, linux y android, en todos ellos tirando contra unas librerías nativas para manejar openGl … suena bien pero será cierto? Tengo que decir antes que nada que lo de ‘game development library’ de momento esta muy lejos de la realidad, la librería te ofrece muchas ventajas para manejar opengl de forma genérica, de hecho la propia documentación dice What its “A high-performance, cross-platform game development framework to be used as the basis for engines and games” and what is not “A game engine including everything but the kitchen sink” … os queda claro no? … que no te lo va a dar todo comido y algo tendrás que hacer

A continuación .. instalamos el entorno, preparamos el sdk de Android, configuramos el emulador y a probar nuestro primer hello world

Paso 0

Esto será el paso 0 porque no me voy a entretener mucho en explicar como se instala ningún SDK (si, os he mentido en la entada) podréis encontrar muchos tutoriales en Google para instalar el SDK e integrarlo con Eclipse, de todos modos lo mas importante lo encontráis aquí:

 Instalar el SDK
 Configurar el SDK con Eclipse
 Crear y configurar Android Virtual Device (AVD)

Asumo que todo el que pase de este punto es porque tiene el eclipse correctamente configurado y puede lanzar el emulador (mínimo con Android 2.2), porque a partir de este punto vienen lo divertido !!

Descargar LibGDX

A fecha de hacer este tutorial la ultima versión disponible de libgdx es la 0.92 y se puede descargar desde su repositorio aunque os pondré un mirror en esta pagina para mantener siempre esta versión accesible, aun así iremos siempre actualizando con cada versión.

 libgdx-0.9.2.zip (13.87 Mb)

Vamos a crear una carpeta llamada libgdx.0.9.2 y dentro crearemos una carpeta windows y otra android con las librerías mínimas para cada tipo de proyecto, aquí os dejo un screenshot de como debería quedaros vuestro directorio.

Para poder vincular luego estas librerías a los proyectos de eclipse será necesario que la carpeta libgdx.0.9.2 la creéis dentro del workspace del eclipse.

Crear nuestra primera aplicación en Windows

La gran ventana de esta librería es la de poder desarrollar y ejecutar en windows, sin tener que lanzar ningún emulador ni probar en el móvil directamente, luego nuestra app se podrá llevar a android de forma sencilla (tan sencilla que no te lo creerás hasta que lo veas en directo).

1 – Empezamos por crear un nuevo proyecto de Java, que llamaremos Sample0 y ‘MUY IMPORTANTE’ seleccionamos que el proyecto use el SE 1.6, con el 1.7 no funciona

2 – creamos una carpeta libs y arrastramos dentro de esta carpeta los 4 jars que descargamos para la librerías de Windows, seleccionamos que queremos vincular los archivos en lugar de copiarlos, de esta forma evitamos que los archivos se dupliquen para cada proyecto … viene a ser como accesos directos a los archivos pero manejado directamente por el eclipse.

3 – Abrimos las propiedades del proyecto y configuramos ‘Java build Path’, pulsamos el botón ‘Add Jars’ y seleccionamos las 4 librerías que tenemos añadidas en el directorio ‘libs’

4 – creamos una carpeta data y guardamos esta imagen dentro de esa carpeta

5 – A continuación creamos un package ‘com.ofcode.sample’ y creamos 1 clase con nuestro juego, esta clase deberá heredar de ApplicationListener e implementar una serie de métodos de esta clase, de momento copiar el código … sin entrar a explicar lo que hace es muy sencillo:

Esto, ya es todo!!! esa es la clase principal que lanzará nuestro juego y este código funcionará en Windows y en Android sin ninguna modificación

6 – Solo falta tener un método Main que nos permita lanzar este juego en windows, para ello añadimos una nueva clase que vamos a llamar LauncherDesktop y que implementará un único método Main:

Esta clase llamará al método JoglApplication que genera una ventana y ejecuta el juego en esa ventana.

7 – Run > java Aplication y nos preguntará que encuentra varias clases con un Main .. así que lanzamos la nuestra y

y este debería ser el resultado:

Crear nuestra aplicación para Android

1 – Empezamos por crear un proyecto nuevo para android, seleccionamos la api que nos interesa de momento api-8 Android 2.2. Pulsamos siguiente y damos nombre al package y a la activity por defecto. llamamos a la activity LauncherAndroid

2 – Creamos un directorio /libs/ y arrastramos todas las librerías que teníamos guardadas en nuestro directorio libgdx.0.9.2android y seleccionamos que queremos vincular archivos y recrear la estructura de directorios:

Al igual que en la parte de windows de esta forma los archivos no se duplican para el directorio /libs/

3 – Abrimos las propiedades del proyecto y configuramos ‘Java build Path’ pulsamos el botón ‘Add Jars’ y seleccionamos las 2 librerías que tenemos añadidas en el directorio ‘libs’

Y en la pestaña Projects seleccionamos que este proyecto tambien depende del proyecto de Windows, ya que en ese proyecto es donde teniamos creada la clase MyGame, nuestro proyecto en android es un simple Launcher para lanzar el juego.

4 – A continuación vamos a nuestra activity y sustituimos el código que nos genera por defecto por este:

5 – Run as > Android Application ….. y

Aquí os dejo el download de todo el proyecto con las librerías incluidas, pero usarlo solo cuando os a

 Eclipse Workspace completo incluye libs (7.92 Mb)

You may also like...

7 Responses

  1. Óscar dice:

    Buenos días,

    He descargado las fuentes del Workspace y me da un error de referencia a la clase MyGame. He referenciado el proyecto dentro del BuidPath, en el código fuente están los imports y Eclipse no se queja de que no encuentra la clase. Pero al ejecutar el proyecto Android en el emulador me indica esto:

    Could not find class ‘com.ofcode.sample.MyGame’, referenced from method com.ofcode.sample.LauncherAndroid.onCreate

    Por otro lado, más abajo también indica que no encuentra la librería gdx:

    Caused by: java.lang.UnsatisfiedLinkError: Library gdx not found

    Supongo que algún error debe haber al linkar las librerías a los proyectos. ¿Se solucionará si se copian los archivos dentro del proyecto y se añaden al BuildPath?

    Un saludo y gracias por el tutorial,

    Óscar

  2. neofar dice:

    Buenas Óscar

    Ante cualquier fallo con clases que no encuentra o libs que no linka yo te recomiendo (ahora y siempre) que cortes por lo sano .. y si no lo encuentra en la ruta donde tu lo quieres, tráelo hasta la ruta donde el IDE quiera.

    Este ejemplo lo que busca es crear toda la lógica a nivel de desktop y luego crear el proyecto en android y vincular todo. Si no te encuentra la clase MyGame (que está en el desktop) no le des mas vueltas ahora tráela al proyecto de android aunque por ello estemos duplicando las clases. Y con las librerías igual si no las encuentra create un directorio /libs/ y las copias ahí (no vinculadas sino físicamente). Yo he tenido problemas muy parecidos con distintas versiones de eclipse … incluso con algunos archivos .so que no se copiaban al .jar resultante

    Una cosa muy importante, ASEGÚRATE que usas siempre JavaSe-1.6 que con la versión 1.7 no rula … y además cuidad con el ADT17 (que es la ultima actualización) y parece que también requiere una configuración especial http://www.badlogicgames.com/wordpress/?p=2362

    Un saludo

  3. Óscar dice:

    Muchas gracias por la respuesta! Probaré como me indicas.

    Un saludo,

    Óscar

  4. Óscar dice:

    Hola de nuevo,

    Sólo confirmarte que con lo que me indicaste he solucionado el problema, con la configuración que se indica en la Web de Badlogicgames fue bien a la primera.

    Muchas gracias!

    Óscar

  5. Gonzalo dice:

    Buenos tardes

    Yo tengo el mismo problema! segui todos los pasos y hasta he probado otros tutoriales similiares y obtuve exactamente el mismo error que Oscar!

    Hoy 20/04 tengo el ADT 18, probe con la solucion del bug que tiene ADT 17, pero el error persiste!
    Trate de descargar el ADT 17 o anterior pero el pagina oficial ya no se pueden descargar!

    Trate de copiar las librerias y la clase que contiene el juego al proyecto de Android pero de repente me aparecen errores en AndroidManifest.xml sin haber cambiado nada en este archivo!
    Me estoy volviendo loco, hace 3 dias que intento compilar un juego en Eclipse para Android con LibGDX y no puedo…

  6. Gonzalo dice:

    Alguien tuvo este problema con ADT18?

  7. Becks05 dice:

    Yo tenia el mismo error de todo y me seguia pasando, al igual que ha Gonzalo, pero he conseguido solucionarlo:

    Boton derecho en el proyecto Android > Properties > Java Build Path > Order and Export, marcar el proyecto de escritorio y subirlo hasta ponerlo justo debajo de las carpetas de src y gen.

    Espero que os sirva.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *