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
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
Publicar un comentario