Viking Platform II – Eric & the Onyx Heart. Movemos a nuestro héroe.

Como os comenté en el último post, resolví que pudieran realizarse varios gestos a la vez con ambas manos sobre la pantalla del dispositivo iOS. Hoy veremos como mover a nuestro héroe para que siga la dirección del dedo, pero evitando las diagonales.

Viking Platform II – Eric & the Onyx Heart. El movimiento.

Si habéis llegado hasta aquí y habéis hecho pruebas con lo que os dejé en el último post, hacer que nuestro héroe se mueva en la dirección del dedo es fácil, pero yo necesitaba que solo se moviera de izquierda a derecha y de arriba hacia abajo sin que se desplazara diagonalmente.

La solución fue relativamente fácil. El primer paso fue preguntar por el ángulo que describe el gesto y después incluir ese ángulo dentro de unos valores máximos y mínimos para realizar la acción deseada se resolvía el problema. También tenemos que tener en cuenta que 0º está a la derecha y no en la parte superior como estamos acostumbrados. Se podría recalcular sumando 90 al resultado, yo no lo he hecho ya que pienso que es un mal menor y no hace falta ya que solo afectará a la pregunta de ángulos y teniendo en cuenta la imagen es difícil equivocarse.

La variable que creamos en la función al ser del tipo “UIPanGestureRecognizer ya devuelve la localización por donde se mueve el dedo. Con esa información calcular la dirección del vector es fácil. Vamos a ver el proceso.

Lo primero que tenemos que tener en cuenta, es que el ángulo se devuelve en radianes, por lo que el resultado final lo transformamos en grados para que nos sea más fácil trabajar.

En la función que empleamos para los gestos de la mano izquierda, justo después donde empieza el if para delimitar el gesto al lado izquierdo de la pantalla empezamos.

1
2
var velocity = gesture.velocity(in: view)
let vector = atan2(velocity.y, velocity.x).to360

.to360 forma parte de una extensión donde tengo cálculos que utilizo frecuentemente. Las incluyo en un archivo que llamo Extensiones.swift. Os pongo también lo que hace. Si no empleáis extensiones para estas cosas simplemente aplicar a vector la misma fórmula.

Recordad cambiar en el código “&gt;” por “>” y ” &lt;” por “<

1
2
3
4
5
6
extension CGFloat{
var to360:CGFloat{
let grados = self * 180.0 / CGFloat.pi
return grados &gt;= 0 ? grados : grados + 360
}
}

Luego simplemente dentro de “case.began:” preguntamos por el ángulo:

1
2
3
4
5
6
7
8
switch gesture.state {
case .began:
if vector &gt; 315 || vector &lt; 45 { print("Desplazar vikingo a la derecha") } if vector &gt; 135 &amp;&amp; vector &lt; 225 { print("Desplazar vikingo a la izquierda") } if vector &gt; 45 &amp;&amp; vector &lt; 135 { print("Desplazar vikingo hacia abajo") } if vector &gt; 225 &amp;&amp; vector &lt; 315{
print("Desplazar vikingo hacia arriba")
}
default:
break
}

Y ya está, eso es todo y para las acciones de la mano derecha en el lado derecho de la pantalla aplicamos el mismo concepto.

En el siguiente post veremos la creación de la cuerda, como Eric puede engancharse a ella, balancearse para coger impulso y saltar.

Ya podéis ir haciendo vuestras pruebas y no os olvidéis descargar la primera parte Viking Platform – Eric & the 4 power stones.

Cada nueva descarga me ayuda a seguir desarrollando y a crear nuevos juegos para  que los podáis disfrutar en vuestro dispositivo iOS.

Viking Platform – Eric & the 4 power Stones

Viking Platform – Eric & the 4 Power Stones es un juego de aventuras tipo plataforma inspirado en el game play del antiguo y mítico Rick Dangerous con el que tanto disfrutamos algunos. Viking Platform no tiene mucho de habilidad, la clave es recordar cada una de las pantallas para conseguir evitar las trampas e ir avanzando en el Juego.

Odín te ha encomendado una misión, Salvar el mundo. Recorre 4 apasionantes escenarios y reúne las piedras de poder necesarias para acabar con el Ragnarök. Salta, encuentra cofres ocultos, elimina a los enemigos guardianes de las piedras de poder y guía a Eric en esta apasionante aventura de plataformas. ¿Te atreves?

2 respuesta a “Viking Platform II – Eric & the Onyx Heart. Movemos a nuestro héroe.”

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.