Almacenamiento: entradas usuario (ratón y teclado)

April 1, 2008 – 2:21 am

Mediante este post se pretende recordar como recolectar y hacer uso de las entradas del usuario. Las entradas del usuario (ratón y teclado), se suelen recoger de 2 formas distintas. Dependiendo del objetivo haremos uso de una o la otra.

Contínua

Este modo se utiliza cuando los datos del usuario son necesarios en todo momento. Para acceder a los datos del usuario en cada frame, Processing nos hace el favor de manter estos datos en variable accesible desde cualquier sitio (variables globales que no se deben declarar), las principales variables son:

  • mouseX : numero entero de 0 a width que contiene la posición horizontal actual del ratón
  • mouseY : numero entero de 0 a height que contiene la posición vertical actual del ratón
  • pmouseX : numero entero de 0 a width que contiene la posición horizontal anterior del ratón (la ‘p’ viene de ‘previous’)
  • pmouseY : numero entero de 0 a height que contiene la posición vertical anterior del ratón (la ‘p’ viene de ‘previous’)
  • mousePressed : variable que puede tomar los valores true o false (en JAVA es un boolean) indicando si algún botón del ratón esta siendo pulsado
  • mouseButton : variable que puede tomar los valores LEFT, RIGHT y CENTER indicando el último botón con el que ocurrió algo
  • keyPressed : variable boolean indicando si alguna tecla esta siendo pulsada
  • key : variable que puede tomar el valor de un caracter (en JAVA es un char, como por ejemplo ‘a’ o ‘A’ o ‘1′ o ‘+’) indicando que tecla esta siendo pulsada. También puede tomar el valor CODE, esto indica que la tecla pulsada es especial.
  • keyCode : variable que puede tomar, entre otros, los valores UP, DOWN, LEFT, RIGHT, ENTER, SPACE, ALT, CONTROL,… indicando que tecla especial esta siendo pulsada.

Hay que tener un especial cuidado con los valores de mouseButton, key, keyCode, pues estas variables solo tienen un valor aunque varios botones o teclas estén pulsadas a la vez. La manera de recolectar el total de teclas o botones pulsados es más complicado y no lo veremos aquí.

De todas formas la creación de interfaces que requieren la pulsación de múltiples botones o teclas no es recomendable, ya que este requisito es una limitación para las pantallas táctiles.

Por eventos

Esta es la otra forma para recolectar y usar datos de entrada del usuario. En este método el artista implementa una función a la que Processing llamará cuando algunas acciones concretas se realicen con el ratón y teclado.

  • mousePressed() : se llama cuando el usuario pulse algún botón del ratón. Dentro de esta función también se podrá leer el valor de la variable mouseButton para saber que botón se ha pulsado.
  • mouseReleased() : se llama cuando el usuario suelte todos los botones del ratón. Dentro de esta función también se podrá leer el valor de la variable mouseButton para saber que botón se ha soltado.
  • mouseMoved() : se llama a cada movimiento del ratón en el que los botones no estén pulsados
  • mouseDragged() : se llama a cada movimiento del ratón en el que los botones estén pulsados
  • keyPressed() : se llama cuando el usuario presiona alguna tecla. Dentro de esta función también se podrá leer el valor de las variables key o keyCode para saber que tecla se ha soltado.
  • keyReleased() : se llama cuando el usuario suelta alguna tecla. Dentro de esta función también se podrá leer el valor de las variables key o keyCode para saber que tecla se ha soltado.

Ahora podemos intentar algunos ejercicios.

Post a Comment