Touch Sample (simple touch)

Hoy toca algo sencillo con el touch, de momento y para no complicarnos nos vamos a olvidar que tenemos un cacharro MultiTouch … así que vamos a darle caña solo con un dedito

Crear un Proyecto OpenGL

Como siempre vamos a empezar desde 0 y es creando un proyecto en OpenGL Es, abrimos el XCode vamos a File > New Proyect y seleccionamos un proyecto “OpenGL ES Application“, pulsamos el botón choose y le damos el nombre que nos interese:

Nuestra Clase GL

Por ahora no vamos a aportar nada nuevo a nuestra clase GL para dibujar sprites, así que os toca copiar los pasos que ya hicimos en nuestro capitulo Sprites en OpenGL os recuerdo que ahí solamente vamos a definir la clase GL.m vamos a agregar el Framework CoreGraphics.Framework, y vamos a añadir un nuevo archivo gráfico a los resources del proyecto.

También deberemos copiar todas las modificaciones que hicimos a la clase EAGLView.m, los métodos inicializar, setupView, clearBuffer y swapBuffer que agregamos.

.. y mas recopilaciones, en el anterior capitulo UIAccelerometer Sample vimos como meter Labels en pantalla sin pasar por el Interface Builder .. de ahí nos traemos ese método.

Así resumimos a saco y este ejemplo nos vamos a centrar en el Touch

Touching

Vamos a empezar por EAGLView.h, por un lado aquí tenemos las variables para la interfaz

y por aquí los métodos que vamos a implementar

Y pasamos a la implementación en EAGLView.m,
En primer lugar buscamos el método initWithCoder y creamos nuestra label

seguimos con nuestro método inicializar

Implementamos los 3 métodos del Touch

Bien, de un vistazo rápido, tenemos 4 métodos para el Touch:

touchesBegan

Este evento se lanza cuando algún dedo toca la pantalla, lo único que hacemos es pillar un touch cualquiera del array que nos pasa y sacar sus coordenadas X e Y, como nuestra pantalla tiene el eje de coordenadas <0,0> centrado en pantalla le restamos ese desfase a las coordenadas que nos de el Touch. Además marcamos una variable booleana a True para saber que estamos moviendo los deditos por la pantalla.

touchesMoved

Este evento funciona exactamente igual que el anterior, pero se va a lanzar cada vez que alguno de los Touchs se mueva. Hacemos lo mismo que hacíamos en el Began.

touchesEnded y touchesCancelled

Ambos eventos se lanzan cuando uno de los touchs termina, pero solo he podido reproducir el Ended .. no se cuando se lanza el Cancelled, pero ahí lo dejamos por si acaso.

Como veis en todos estos métodos actualizamos el texto del Label, así estamos informados en todo momento de lo que pasa

drawView

You may also like...

1 Response

  1. juanmiguelrr dice:

    ¡Vaya! Parece que vas avanzando con esta web… A ver si por fin sale el nuevo iMac y aprendo un poquillo siguiendo los tutoriales y no tengo que empezar de cero. 😀

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *