30/5/14

[Tutorial] [LibGDX] Añadiendo escuchadores de eventos a actores

Buenas gente!
En esta entrada vamos a ver como añadir eventos a cualquier actor de tu aplicación. Con estos eventos podrás controlar lo que pase cuando se haga click o se arrastre un actor, por ejemplo.

Creando e inicializando las variables necesarias


Lo primero que tenemos que tener es un objeto de la clase Actor o de alguna clase que herede de este (botones, tablas, imágenes... puedes ver más información sobre los actores de libGDX aquí.)

Después necesitaremos un Stage, un Batch o una cámara para que nos muestre el Actor en la pantalla. ( Puedes ver más información sobre Stages y SpriteBatch aquí y aquí)


Recuerda añadir un procesador de entradas a tu Stage:


Con esto harás que sea ese Stage el que reciba los eventos. En caso de tener varios Stages en una misma aplicación deberás decidir en cada caso cual quieres que reciba los eventos. Sólo podrá haber un Stage recibiendo eventos al mismo tiempo.

Añadiendo eventos a un Actor


Una vez tenemos todo listo tan solo deberemos añadir el siguiente código para que nuestro Actor reciba eventos determinados.

Aquí tienes el código de distintos eventos que se pueden añadir. Tan solo tienes que coger las funciones para el evento que quieras coger:


Puedes ver todos los eventos que puedes usar aquí.

Notas


  • Los Stages también pueden recibir eventos de la misma forma que los Actores, al igual que los TextButtons, Tables, etc.
  • Aquellas funciones que devuelven un boolean, en caso de devolver true se detendrá en esa función y no se ejecutará para el resto de escuchadores de eventos que tengas. Es decir, si pones una función en el Stage de escuchar un evento de hacer click (touchDown) que devuelva true, este evento no lo recogerá ninguno de los actores que tenga el Stage. Por eso es recomendable que devuelva siempre false, salvo excepciones.

27/5/14

[Tutorial] Instalaciones necesarias para trabajar con libGDX y Android

Buenas gente!

Hoy, al ir a crear un nuevo proyecto para Android ví que el post que hice explicando cómo se hacía está ya desactualizado por la parte de libGDX, por lo que en esta entrada pondré la versión que hay actualmente (a día 27/05/14) y dejaré la entrada anterior por si alguien tiene versiones anteriores.

Como ya expliqué antes, usaremos el SDK de Android y la librería libGDK. Esta librería te permite tener tu juego tanto en el ordenador como en Android, por lo que las pruebas podrán hacerse directamente en tu ordenador y no necesitaremos usar un emulador de Android, lo que agilizará todas las pruebas.

Descargas e instalación


Lo primero es tener instalado Eclipse. Si no lo tenemos, en Ubuntu es tan sencillo como instalarlo desde terminal con el comando:

# apt-get install eclipse

Si no tienes Ubuntu puedes descargarte Eclipse desde su página.

Además tendremos que descargarnos un par de cosas:

La librería libGDX desde esta web.
El ADT de Android desde esta web.

Una vez descargados, descomprimimos el ADT donde queramos tenerlo, ya que no necesita instalación. En mi caso lo coloqué en mi carpeta personal con el nombre ".adt-eclipse" para que se mantuviese oculta y no estorbase y luego cree un acceso directo al fichero ejecutable ".adt-eclipse/eclipse/eclipse" en mi escritorio, pero puedes ponerla donde y con el nombre que quieras.

Este fichero de antes es una versión modificada de Eclipse denominada Android IDE que viene ya preparado para comenzar a trabajar con Android.

Creación de proyectos


Para crear nuestros proyectos descomprimiremos el archivo libGDX que nos hemos descargado. Dentro de él ejecutaremos el archivo:

gdx-setup.jar



En la pantalla que nos aparece le indicaremos el nombre de nuestro proyecto, como queremos que se llame el paquete por defecto y la clase principal.

Le indicaremos también donde queremos guardarlo y donde se encuentra el SDK. En nuestro caso, el SDK será la carpeta llamada con el mismo nombre dentro de la carpeta que descomprimimos en un principio de nuestro ADT.

Podemos seleccionar a que vamos a querer exportar nuestro proyecto, que puede ser para ordenador (desktop), Android, IOs o Html.

Por último le damos a generar. Tras lo cual ya tendremos nuestros proyectos creados y listos para usar.

Ahora tenemos que importar los proyectos que ha creado para que podamos usarlos en Eclipse. Para ello entramos dentro de Eclipse con el ejecutable de antes (dentro de la carpeta que descomprimimos en un principio entramos en la carpeta eclipse y el ejecutable llamado elipse que hay ahí).

Seleccionamos "File->Import...->Gradle->Gradle Proyect"




Si no nos aparece esta opción, deberemos instalar el plugin. Para ello vamos al menú Help -> Install new software...

Añadimos la siguiente dirección: http://dist.springsource.com/release/TOOLS/gradle y le damos a add


Le damos a continuar y tras instalarlo ya podremos importar proyectos gradle.

Tras estos pasos ya tendremos nuestros proyectos en el workspace y tendremos nuestro entorno listo para ponernos a trabajar en nuestra aplicación!

Notas


  • Todas las clases y código se crearán en el proyecto principal. En los otros proyectos solo habrá una clase para adaptar y crear el proyecto ya sea en Android o en el ordenador y cambiar detalles como la resolución de la pantalla.
  • Los archivos estáticos como las imágenes o textos irán en la carpeta assets del proyecto android. El resto de proyectos tienen enlazada su carpeta para poder usar estos archivos automáticamente.
  • El programa de libGDX que hemos usado permite también crear proyectos para exportar tu aplicación a otras plataformas como IOs o html. Tan solo tienes que seleccionar los proyectos que deseas que te cree y deseleccionar aquellos que no te interesen.

16/5/14

[Noticia] Keepod, el 'gadget' inventado para acabar con la brecha digital en el mundo

Buenas gente! Hoy en vez de un tutorial os traigo una noticia interesante que he leído hoy.

Se trata de Keepod, un dispositivo de bajo coste que almacena un SO Android 4.4 para que el usuario pueda tener su escritorio y archivos y acceder a ellos desde cualquier ordenador de forma segura.

El aparato es un pendrive que cuesta tan solo 7 dólares y tiene una capacidad de 8GB (El SO apenas ocupa 1GB de espacio) y ha sido inventado por dos jóvenes israelíes. Con el objetivo de dar uso a cualquier ordenador viejo, permitiendo al usuario poder tener su propia información, programas y configuración.

Una buena opción cuando un ordenador va a ser usado por muchas personas o alguien va a usar distintos ordenadores y no tiene acceso a Internet para mantener sus archivos y demás en la nube.

Podéis leer la noticia completa aquí.

15/5/14

[Tutorial] Dibujar formas (libGDX)

Buenas gente! En esta entrada vamos a ver como dibujar distintas formas en nuestra aplicación sin tener que usar texturas o imágenes. Para ello usaremos la clase ShapeRenderer que nos proporciona libGDX. Veamos cómo podemos usarla en nuestra aplicación.

Inicialización de variables


Simplemente tendremos que inicializar nuestra variable ShapeRenderer con un constructor vacío:


Esta misma variable nos servirá para dibujar rectángulos, círculos, arcos, conos, elipses, etc. En el siguiente apartado veremos como.

También deberás tener en algún lado la información de la posición x e y donde quieres dibujar la figura, su radio, color, etc. Esta información puedes guardarla en variables, pasárselas por función, o como te venga mejor para tu aplicación en concreto.

No olvides hacer el dispose( ) de la variable para liberar los datos de la variable al finalizar la aplicación o cuando vayas a dejar de usar la variable.

Dibujando la figura


Para dibujar nuestra figura iremos a nuestra función draw en donde pondremos el siguiente código:


La línea 3 solo es necesaria si quieres que tus formas tengan canal alfa, es decir, transparencias.

Al iniciar con begin(ShapeType) le puedes indicar como quieres que te dibuje la forma:

  • ShapeType.Line → Sólo dibujará la línea exterior.
  • ShapeType.Filled → Dibujará la forma rellena.

Después puedes indicarle el color con el que quieres que se dibujen las siguientes figuras (Si no has puesto la línea 3 dará igual el valor que pongas en el cuarto valor del color).

Después podrás dibujar las figuras que quieras como puedes ver en las líneas 8, 14, 20 y 25.

Estos son unos pocos ejemplos de todas las figuras que puedes hacer, si quieres ver todas las posibilidades, mira aquí.

En la función del círculo (línea 8) el último valor es opcional e indica el número de segmentos con los que se dibujará el círculo.

Por último, cierra el dibujado de figuras con la función end( ).

Puedes ejecutar el begin( ) / end( ) todas las veces que quieras para dibujar formas rellenas o solo con líneas.

Notas

  • No te olvides de hacer el dispose( ) del ShapeRenderer.
  • Si estás usando SpriteBatch o Stages tendrás que parar el SpriteBatch ( batch.end( ) ) antes de dibujar las figuras y volverlo a iniciar (batch.begin( ) ) tras dibujarlas todas.
  • La posición que les indicas para dibujar las figuras es la esquina inferior izquierda, no el centro de la figura.
  • El color que indiques se aplicará a las figuras que dibujes a partir de ahí. Si quieres una figura de otro color deberás llamar de nuevo a la función cada vez.
  • Con un número de segmentos bajo puedes utilizar la función de dibujar círculos para dibujar hexágonos, pentágonos, octógonos, etc.