Antes de nada, estuve probando “in situ” que los cambios de escala no afectaban al cálculo con la posición GPS. Malas noticias, había algún tipo de error. Tras comprobar los cálculos de las fórmulas de transformación, no encontraba problema alguno, pero pude ver que el desfase era constante, por lo que he añadido una corrección de posición a base de pruebas para solucionar el error.
Hora de hacer el HUD, necesario para empezar a recibir daño y dañar a los enemigos. Está compuesto por dos sencillos elementos, una imagen en el centro de la pantalla para el punto de mira y un icono de salud con la cantidad actual. Una vez colocados estos elementos… ¿por qué no probar a disparar a algún enemigo?.
Para disparar utilizo las pulsaciones del trackball del teléfono, de forma que al registrar una pulsación realizo una comprobación de colisión del vector al que apunta la cámara con el enemigo. Por desgracia parece que la función para esto no quería funcionar (algo que ya me pasaba cuando comprobaba si estaba en el campo de visión del enemigo, lo que me hace pensar que hay algo que no funciona bien con esa función, ya que no reconoce colisiones a grandes distancias). ¿Qué hacer entonces? hay un método que permite a partir de una posición y una dirección (como en el chequeo de colisión), comprobar la distancia mínima con un objeto según esos vectores. La comprobación es entonces sencilla, si en la dirección en la que estoy mirando hay algún enemigo, y la distancia es menor a la que me de el mapa en esa dirección, entonces es que estoy acertando con los disparos.
Con esto ya es cuestión de reducir la vida del enemigo con los disparos y hacerlo desaparecer al morir, a la vez que el enemigo debería reducir la vida del jugador a intervalos regulares cuando se encuentra pegado a él.
Etiquetas: android, realidad aumentada