martes, 30 de diciembre de 2014

TEMA #11: LA INTERFAZ DE BAJO NIVEL (GAMECANVAS) II: MANEJO DE TECLADO Y PANTALLA

Ya vimos en el tema anterior cómo dibujar en el lienzo (GameCanvas), a través del método public void paint(Graphics g){...}, ahora vamos a ver otros métodos que podemos utilizar en el lienzo de dibujo pero que no tienen que ver directamente con el dibujado en pantalla, sino que estos métodos nos van a permitir realizar acciones a través del teclado de nuestro celular o pantalla (celulares táctiles). 

Los métodos de los que hablaremos los podemos clasificar en 2 grupos:


Antes de continuar, descarga esta aplicación que te indicará qué métodos soporta tu celular. DescargarApp. Es importante debido a que algunos celulares no soportan keyRepeated, por mencionar un ejemplo.


TECLADO
Antes de comenzar con los métodos de teclado vamos a ver qué teclas podemos utilizar. El teclado está compuesto por botones alfanuméticos y además tiene botones direccionales y botones extras. Veamos un ejemplo gráfico donde se muestran los botones que podemos utilizar:



keyPressed
Se utiliza para realizar una acción al pulsar un botón del teclado de nuestro celular, cuando estamos trabajando dentro de un lienzo de dibujo (GameCanvas). Las acciones que coloquemos dentro de este método se van a llevar a cabo justo cuando se pulse un botón determinado.


keyReleased
Se utiliza para realizar una acción al soltar un botón que ha sido previamente pulsado, cuando estamos trabajando dentro de un lienzo de dibujo (GameCanvas). Las acciones que coloquemos dentro de este método se van a llevar a cabo justo cuando se suelte un botón determinado.


keyRepeated
Se utiliza para realizar una acción al mantener presionado un botón, cuando estamos trabajando dentro de un lienzo de dibujo (GameCanvas), y siempre que el celular soporte este método. Las acciones que coloquemos dentro de este método se van a llevar a cabo cuando se mantenga presionado un botón determinado.


¿Cómo Usarlos?
Para usar los métodos de teclado debemos colocarle nombre a la variable de tipo int, no necesariamente se tiene que llamar keycode, yo en lo particular siempre la llamo “k”.
Código
Notas
public void keyPressed(int k){
         if(k == KEY_NUM0){
              //Acciones a realizar
         }
         if(k == KEY_NUM1){
              //Acciones a realizar
         }
}
En este caso utilizamos keyPressed pero puede ser keyReleased o keyRepeated, es la misma estructura. Podemos ver que es similar a como definíamos una función particular para cada comando dentro de una Form. Las teclas que podemos utilizar son: KEY_NUM0,..., KEY_NUM9, KEY_STAR, KEY_POUND. Y las teclas de acción que podemos utilizar son: FIRE, GAME_A, GAME_B, GAME_C, GAME_D.

Descarga el código y los recursos de la aplicación para saber con más detalle cómo se usan los métodos de teclado. Descargar.
Descarga una aplicación de ejemplo en la que se utilizan los métodos de teclado. DescargarApp.


PANTALLA
En el caso de los celulares táctiles, cualquier punto dentro de la pantalla es válido, es por eso que los métodos para controlar la pantalla solicitan dos parámetros: una coordenada en el eje horizontal (x) y una coordenada en el eje vertical (y). La determinación de este punto en la pantalla es similar a como lo hicimos con el punto de referencia, un valor x y uno y.

pointerPressed
Se utiliza para realizar una acción al pulsar un punto determinado de la pantalla, cuando estamos trabajando dentro de un lienzo de dibujo (GameCanvas). Las acciones que coloquemos dentro de este método se van a llevar a cabo justo cuando se pulse un punto que determinemos de la pantalla del celular.


pointerReleased
Se utiliza para realizar una acción al dejar de pulsar un punto determinado de la pantalla, cuando estamos trabajando dentro de un lienzo de dibujo (GameCanvas). Las acciones que coloquemos dentro de este método se van a llevar a cabo justo cuando se deje de pulsar un punto que determinemos de la pantalla del celular.


pointerDragged
Se utiliza para realizar una acción al desplazar nuestro dedo desde un punto a otro de la pantalla, cuando estamos trabajando dentro de un lienzo de dibujo (GameCanvas). Las acciones que coloquemos dentro de este método se van a llevar a cabo cuando nuestro dedo se desplace desde el punto inicial que determinemos hasta el punto final que determinemos, en la pantalla.


¿Cómo Usarlos?
Para usar los métodos de pantalla debemos colocar nombre a las dos variables tipo int, yo particularmente las llamo igual “x” y “y”.
Código
Notas
public void pointerPressed(int x, int y){
         if(x == 5 && y == 5){
              //Acciones a realizar
         }
         if(x == 20 && y == 50){
              //Acciones a realizar
         }
}
En este caso utilizamos pointerPressed pero puede ser pointerReleased o pointerDragged, es la misma estructura. Debemos utilizar el operador “&&” para relacionar el valor del eje vertical (x) con el valor del eje vertical (y). Si no se coloca un valor de x y uno de y no funcionará.

Descarga el código y los recursos de la aplicación para saber con más detalle cómo se usan los métodos de pantalla. Descargar.
Descarga una aplicación de ejemplo en la que se utilizan los métodos de pantalla. DescargarApp.

No hay comentarios.:

Publicar un comentario