Ir al contenido principal

Desarrollando Un Juego Para Android - Road Dash

Me he dedicado estos días a publicar el segundo juego completo que desarrollo para Android. Comenzaba a desarrollar Road Dash el pasado mes de marzo y durante los siguientes meses, me he dedicado a trabajar en el proyecto de forma intermitente según me permitían los estudios y la motivación. Finalmente, he terminado de pulir y depurar los últimos detalles durante este mes de septiembre y vengo a compartir en este texto aquellos aspectos que creo más interesantes del desarrollo del juego.

Los enlaces de descarga son estos:

Play Store: https://play.google.com/store/apps/details?id=com.JorgeFernandezApps.Roaddash

Amazon App Store: https://www.amazon.es/Jorge-Fern%C3%A1ndez-Road-Dash/dp/B08JKZS7KV/ref=sr_1_1?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=road+dash&qid=1601245278&sr=8-1

Road Dash consiste en controlar un coche a lo largo de una carretera recta infinita con el fin de esquivar los obstáculos que en ella se encuentran. Lleva la tarea adicional de recoger monedas con las que comprar nuevos vehículos en la tienda del juego. 

Generación de la carretera infinita

El código del juego no es demasiado complejo pero uno de los algoritmos a tener en cuenta es el de generación de la carretera de forma aleatoria y en tiempo real. El mecanismo es muy simple. Contamos con una serie de tramos prediseñados que vamos colocando de forma aleatoria uno detrás de otro. Para ello creamos un array (secuencia o vector de objetos de longitud definida) de "GameObjects" con n posiciones (siendo n el número de tramos distintos que queremos utilizar) para almacenar los distintos tramos de carretera diseñados previamente. Cada vez que queramos añadir un tramo nuevo, generamos un entero aleatorio entre 0 y n - 1 (el rango de índices del array). De este modo, dicho índice aleatorio en el array nos devolverá una de las n opciones posibles de tramos para añadir a a la carretera. Por último se instancia el tramo de carretera al final del tramo anterior. A medida que el jugador va avanzando, se van destruyendo los tramos de carretera que se han pasado para liberar memoria y procesamiento.

Control del vehículo

El control del coche es otro punto básico a tener en cuenta. El vehículo se controla únicamente de forma lateral, pues hacia delante, avanza de forma contínua y automática y el jugador sólo debe desplazarse de lado a lado para esquivar los obstáculos. A medida que se alcanzan hitos de puntuación, aumenta la velocidad sumando dificultad al juego. 

El control se lleva a cabo por medio del desplazamiento de lado a lado del dedo en la pantalla. Para ello, se almacenan las coordenadas en la pantalla del momento en que el dedo se posa sobre ella. Una vez el jugador mueve el dedo, se debe calcular hacia qué lado lo ha hecho para saber si el coche debe ir a la izquierda o la derecha. Esto lo haremos tomando las coordenadas de la posición nueva del dedo en cada momento y calculando el valor x del vector que forman los dos puntos (el primer lugar que toca el dedo y hemos almacenado antes, y la nueva posición). Dicho de otra forma, para saber hacia dónde ha movido el dedo el jugador, restaremos el valor de la coordenada x de la primera pulsación a la coordenada x de la segunda posición del dedo. Si el resultado es positivo, sabremos que ha sido hacia la derecha, si por el contrario es negativo, habrá sido hacia la izquierda. Además, dicha resta nos dirá cómo de lejos ha movido el dedo del primer punto donde ha pulsado y lo utilizaremos para ajustar la velocidad lateral a la intensidad del desplazamiento del dedo. A más desplazamiento del dedo, más rápido se movera el coche lateralmente.

Estos son los dos mecanimos que principalmente dan vida al juego. Espero que haya sido entretenido ver qué hay detrás de Road Dash y te animo a probarlo.

Si te ha gustado esta publicación, te sugiero que te suscribas al blog haciendo clic en el botón de la cabecera de la página para no perderte las próximas publicaciones. También estoy en las redes sociales.

Twitter: @NacionPC
Instagram: @nacionpc

Comentarios

Entradas populares de este blog

Cómo crear proyectos y clases en Java con Eclipse.

Continuamos con Java y después de haber visto cómo instalar todo lo necesario para poder programar, vamos a ver, en esta publicación muy breve, cómo se crean los proyectos y las clases en Eclipse, paso fundamental para crear programas Java. Si todavía no has visto cómo instalar todo el software necesario, te dejo un enlace a las publicaciones donde lo explico. - Instalar Java. - Instalar el JDK. - Instalar Eclipse. Lo primero es crear el proyecto java. Para ello, estando dentro de Eclipse, hacemos clic en el botón indicado en la siguiente imagen. Se nos desplegará la siguiente ventana donde le damos nombre al proyecto en la primera casilla. No necesitaremos tocar ninguna otra opción. Hacemos clic en "Finish" y ya estará creado el proyecto. Nos aparecerá el proyecto en forma de carpeta en la ventana de la izquierda del programa "Package Explorer". Lo siguiente será crear una clase. Para ello hacemos clic derecho sobre la carpeta del proyect...

El problema de las contraseñas y por qué es buena idea el doble factor de autenticación

Allá por la década de los 60, Fernando José Corbató, científico de computación del MIT, tuvo la idea de emplear contraseñas para proteger el acceso a archivos en ordenadores compartidos. Por aquel momento, el uso de ordenadores estaba bastante poco extendido y las primeras redes eran más bien parcelas independientes que conectaban unos cuantos equipos dentro de alguna que otra universidad. Nada que ver con Internet, cuya existencia, dimensión y alcance eran, por aquel momento, inimaginables para la mayoría. En el diseño de aquellos sistemas la seguridad no fue una prioridad. La mayoría de los ataques informáticos comenzaron a surgir varias décadas más tarde cuando los primeros PCs empezaron a estar al alcance de todo el mundo e Internet empezó a tomar forma. No se rompieron mucho la cabeza para pensar en diseñar sistemas seguros contra amenazas que aún no habían sido inventadas. Esos cimientos que se contruyeron con la seguridad como última prioridad son los mismos sobre los que se asi...