This page was exported from Recursos para programadores [ https://eldesvandejose.com ]
Export date: Thu Feb 25 2:42:07 2021 / +0000 GMT

El teclado y la ventana




En este artículo vamos a asomarnos a dos aspectos de Processing que necesitaremos conocer en varios sketchs, dado que se usan muy a menudo. No vamos a verlos a fondo, dado que, para ello, necesitaríamos varios artículos. El objetivo de este post es familiarizarnos un poco con estos dos elementos, de modo que, cuando, en otros sketches, profundicemos más, nos resulte más fácil.

Los dos aspectos que nos interesan ahora son:

EL SKETCH

Vamos a incluir un listado de un sketch, que hace lo siguiente:

El listado es el siguiente:

int anchura = 200; // Almacenará la anchura de la ventana en tiempo real.

int altura = 200; // Almacenará la altura de la ventana en tiempo real.

void setup(){

size(200, 200);

background(0);

surface.setResizable(true);

}

void draw(){

}

/* La función keyPressed() se activa de modo automático cuando la

ventana de ejecución del sketch está enfocada (tiene el foco de eejecución)

y se pulsa una tecla. */

void keyPressed() {

if (keyCode == UP){ // Tecla de flecha arriba

if (height >= 200) altura --; // Disminuimos la altura, si es mayor o igual a 200.

} else if (keyCode == DOWN) { // Tecla de flecha abajo

if (height <= 600) altura ++; // Aumentamos la altura, si es menor o igual a 600.

} else if (keyCode == RIGHT) { // Tecla de flecha derecha

if (width <= 600) anchura ++; // Aumentamos la anchura, si es menor o igual a 600.

} else if (keyCode == LEFT) { // Tecla de flecha izquierda

if (width >= 200) anchura --; // Disminuimos la anchura, si es mayor o igual a 200.

}

surface.setSize(anchura, altura); // Reajustamos el tamaño de la ventana de ejecución.

}

La operativa del sketch es bastante intuitiva, una vez que ya vamos estando familiarizados con Processing. No obstante, vamos a centrarnos en los puntos clave que necesitamos conocer.

La instrucción siguiente es la que permite que la ventana sea reescalable con el ratón:

surface.setResizable(true);

El valor false haría que la ventana no fuera reescalable. Es el valor por defecto.

La función keyPressed() es un capturador de eventos (este, en concreto, captura la pulsación de una tecla). Una vez que ha capturado el evento lleva a cabo una función cómo respuesta. Ya tuvimos una toma de contacto con capturadores de eventos en forma de funciones en un artículo anterior sobre el ratón.

La variable keyCode es propia de Processing (no es una variable que pueda definir el usuario), del mismo modo que width y height, que ya conocemos de este artículo. Esta variable (keyCode) contiene un código relativo a la última tecla que se ha pulsado. Normalmente es un código que se identifica por un valor numérico de ASCII (por ejemplo, si pulsas la tecla A obtienes 65). La variable keyCode no distingue las mayúsculas de las minúsculas, así que obtienes 65 tanto si pulsas A cómo si pulsas a.

No obstante, determinadas teclas pueden reconocerse mediante unas constantes propias del lenguaje:

UP identifica la tecla de flecha arriba.

DOWN identifica la tecla de flecha abajo.

RIGHT identifica la tecla de flecha derecha.

LEFT identifica la tecla de flecha izquierda.

En la referencia de Processing puedes encontrar más constantes predefinidas que se refieren a ciertas teclas, así cómo más detalles acerca del uso del teclado. Pulsa este enlace.

 

 


Post date: 2016-07-27 19:10:30
Post date GMT: 2016-07-27 19:10:30
Post modified date: 2016-10-06 09:34:19
Post modified date GMT: 2016-10-06 09:34:19

Powered by [ Universal Post Manager ] plugin. MS Word saving format developed by gVectors Team www.gVectors.com