NOVEDADES IMPORTANTES

Acceso a todos los contenidos

Hace unos meses decidimos suspender nuestra actividad de formación online en Digital Learning SL (propietaria de esta web).

Desde entones hemos mantenido operativos nuestra plataforma de teleformación y webs de contenidos Academia Android y Digital Learning, habilitando un acceso libre y gratuito a todos estos recursos, incluyendo cursos y contenidos Premium que antes requerían un registro y pago previo, lo que ha propiciado un volumen de visitas constante de usuarios que consultan esta formación.

Venta-traspaso de los contenidos

Creemos que estas webs por sus contenidos, posicionamiento SEO y atracción de tráfico (junto a sus cuentas en redes sociales asociadas, incluyendo Twitter y Facebook de nuestro curso de Community Manager) pueden ser una oportunidad para emprendedores o compañías de diversos ámbitos (formación, marketing y publicación online, desarrollo software,…) que quieran:

  • Captar usuarios, alumnos o clientes para sus proyectos, productos y servicios.
  • Comercializar los contenidos bajo múltiples fórmulas: venta de publicidad, modelos freemium o de pago, suscripciones…
  • Crear un nuevo proyecto a partir de esta infraestructura de recursos.

Si tú o tú empresa estáis interesados en adquirirlos, ofrecemos su traspaso en propiedad exclusiva. Puedes contactar conmigo en «contacto@digitallearning.es» (por favor entiende que los correos que no vengan suficientemente identificados no vamos a atenderlos). Gracias.

Manuel Cabello (Socio-Director de Digital Learning/Academia Android)

Este es el número de tutoriales publicados:

Pincha en los textos de los contadores de Tutoriales publicados, Premium o Series de tutoriales para tener un detalle de las publicaciones que comprenden.

Desde hace unos meses, todos los contenidos, incluidos los Premium, son accesibles libre y gratuitamente.

  • Premium
  • Acceso libre
130
Acceso libre
126
Premium

Algunos datos sobre los contenidos que hemos publicado hasta la fecha:

74
Videos
61
Proyectos descargables
contacto[arroba]digitallearning.es

Proyecto con libGDX: creación del primer videojuego

Post Series: Programación de Videojuegos con libGDX

Vamos a desarrollar un proyecto con el framework libGDX, en el que crearemos un sencillo videojuego 2D, para familiarizarnos con esta librería y las posibilidades que nos ofrece.

El juego consistirá en controlar una nave espacial con la pantalla táctil del dispositivo.  El usuario deberá evitar colisionar con las naves enemigas, y conseguir chocar con los objetos de puntuación para aumentar su casillero de puntos. Al final del tutorial puedes descargar todo el código del proyecto.

Actualización: abajo de este contenido tenéis unas indicaciones que habréis de tener en cuenta para realizar el proyecto con Android Studio en vez de Eclipse, y la descarga del proyecto en ambas versiones.

Elementos necesarios:

  • Recursos de imágenes para la nave del jugador, la nave enemiga y objeto de puntuación.
  • Se deben declarar e inicializar los recursos anteriormente nombrados con la clase Texture.
  • Se deben declarar e inicializar tres objetos de tipo Rectangle, uno por cada elemento en pantalla.
  • Será necesario declarar e inicializar un objeto de la clase SpriteBatch, para asignar los objetos Texture (imágenes) a los objetos Rectangle definidos (al asignarlos se asocia tanto el tamaño como la posición en pantalla). Recordemos que es necesario trabajar con los objetos Rectangle, aunque lo que visualicemos sean imágenes o texturas.
  • Recursos sonoros para la ambientación de las colisiones entre los elementos.

En la siguiente imagen se pueden observar los diferentes elementos que intervienen en el videojuego:
Elementos del videojuego

Como se puede apreciar en la imagen, las coordenadas de los ejes X e Y serán siempre de valor positivo. Para los objetos de puntuación jugador y nave enemiga, al posicionarse en un valor negativo del eje X, aparecerán de nuevo al comienzo de la pantalla por la parte derecha.

Reglas del juego:

  • Por cada colisión con el objeto de puntuación del jugador, se sumarán dos puntos a su casillero correspondiente.
  • Por cada colisión con la nave enemiga, se restará una vida en el contador de vidas restantes.
  • Por cada 10 puntos, se aumentará en uno el número de vidas restantes, se aumentará el nivel en uno, y también aumentará la velocidad de la nave enemiga y del objeto para puntuación.
  • En caso de superar los cinco niveles definidos en el videojuego, la puntuación final se sumará al número de vidas restantes (por cada vida se adjudican 10 puntos).
  • En el supuesto de perder todas las vidas, se mostrará sólo la puntuación final obtenida.

Funcionamiento:

El control de la nave del jugador se realizará a través de la pantalla táctil del dispositivo, que en caso de pulsarla, la nave comenzará a subir (coordenada eje +Y), y al dejar de presionar la pantalla la nave descenderá (la nave del jugador no podrá sobrepasar los límites superior e inferior de la pantalla).
Logica control videojuego

Proyecto JuegoslibGDX:

JuegoslibGDX/src/com.academiaandroid.libgdx/MiJuegoGDX.java

Se declaran e inicializan las variables que representarán, tanto los elementos visuales del videojuego, como los parámetros de velocidad de movimiento de los diferentes objetos en pantalla, además de la música para la ambientación del juego , la puntuación inicial, vidas del jugador y nivel de inicio del juego:

Se inicializan los objetos Rectangle en el método create() , que nos permitirán controlar las colisiones entre los objetos que intervienen en el videojuego. Se asigna el mismo ancho y alto que las imágenes o texturas que van a representarse en esa posición. Se establece los rectángulos en coordenadas y aleatorias. También se preparan los sonidos para su reproducción, en modo bucle con el método setLooping:

 

Implementaremos un método llamado controlColisionesYPuntuacion(), que permitirá establecer la lógica de puntuaciones y niveles, dependiendo de con que objeto colisionemos:

También será necesario crear un método que controle cuando la nave enemiga o el objeto puntuación desaparezcan por el lado izquierdo de la pantalla (eje de coordenadas -X). A continuación se muestra, como ejemplo de ambos, la creación de un nuevo enemigo:

Para finalizar, se declara un método encargado de controlar cuando el usuario pulsa la pantalla y cuando deja de hacerlo. Es conveniente aclarar, que se debe controlar las posiciones máxima y mínima de la nave del jugador en el eje de coordenadas Y, para que esta siempre sea visible:

Descarga del Proyecto (versión para Eclipse)

Descargar

Versión para Android Studio

Os indicamos los cambios que debéis tener en cuenta en el proyecto para realizarlo con Android Studio. Como veréis son pequeños, y en cualquier caso, disponéis abajo del código del proyecto en versión Android Studio para descargarlo.

En este proyecto debeis considerar lo siguiente:

1) Uso de la clase GL20 en lugar de GL10

Simplemente cambiamos la sentencia de importación:

susttuye a:

 

2) Las instancias de BitmapFont, al invocar al método setScale(), han sido sustituidas por la estructura getData().setScale():

Por ejemplo:

es sustituido por

 

es sustituído por

(depende del tamaño de la pantalla, sería más eficiente obtenerlo, pero dejamos esta versión para no introducir más cambios).

Descarga del Proyecto (versión para Android Studio)

Descargar

This Post Has 2 Comments

  1. Buenas, muchas gracias por los tutoriales pero podríais subir unos tutoriales sobre la cámara isometrica ?

    Muchas gracias por todo

    1. Hola Pablo, estamos diseñando una nueva serie de tutoriales sobre libGDX que profundizarán en el uso de esta librería a través del desarrollo de un videojuego completo. Cuando tengamos definidos esos contenidos en detalle con el autor te podremos decir si se trata el tema de la cámara isométrica.
      Gracias por tu interés

Comments are closed.