0% encontró este documento útil (0 votos)
30 vistas7 páginas

P08 - Pulsaciones de Teclado

El documento describe cómo detectar la presión de teclas en un entorno de programación, utilizando variables como keyPressed, key y keyCode para cambiar propiedades visuales y controlar la posición de objetos en pantalla. Se presentan ejemplos de código que ilustran cómo cambiar el color de un rectángulo al presionar teclas, mover un círculo con las flechas del teclado y gestionar la posición de una bola en un juego simple. Además, se explica la diferencia entre las funciones keyPressed y keyReleased para manejar eventos de teclado.

Cargado por

FavoritePenguin
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
30 vistas7 páginas

P08 - Pulsaciones de Teclado

El documento describe cómo detectar la presión de teclas en un entorno de programación, utilizando variables como keyPressed, key y keyCode para cambiar propiedades visuales y controlar la posición de objetos en pantalla. Se presentan ejemplos de código que ilustran cómo cambiar el color de un rectángulo al presionar teclas, mover un círculo con las flechas del teclado y gestionar la posición de una bola en un juego simple. Además, se explica la diferencia entre las funciones keyPressed y keyReleased para manejar eventos de teclado.

Cargado por

FavoritePenguin
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Para saber si una tecla fue presionada podemos utilizar la variable booleana keyPressed , que

devuelve el valor true si alguna tecla fue pulsada y false si no se pulsó ninguna. Por otro lado,
tenemos la variable de estado key, que nos devuelve el valor de la última tecla pulsada.
En este caso el relleno cambia al pulsar cualquier tecla:
void draw() {

if (keyPressed == true) {

fill(0);

} else {

fill(255);

rect(25, 25, 50, 50);

En este otro caso el relleno cambia al pulsar b:


void draw() {

if(keyPressed) {

if (key == 'b' || key == 'B') {

fill(0);

} else {

fill(255);

rect(25, 25, 50, 50);

La función keyPressed() se llama una vez en cada ocasión que se pulsa una tecla.
int value = 0;

void draw() {

fill(value);

rect(25, 25, 50, 50);

void keyPressed()

if(value == 0) {
value = 255;

} else {

value = 0;

La función keyReleased() se llama una vez en cada ocasión que se suelta una tecla.
int value = 0;

void draw() {

fill(value);

rect(25, 25, 50, 50);

void keyReleased()

if(value == 0) {

value = 255;

} else {

value = 0;

Mientras que keyCode se utiliza cuando utilizamos teclas de símbolos y


caracteres especiales (SHIFT, CTRL, UP, DOWN, RIGHT, LEFT etc).

int x = 90;

void draw() {

noStroke();

background(127);

rect(x, 10, 3, 80);

void keyPressed() {

if (keyCode == LEFT) {

x = x - 5;

}
else if (keyCode == RIGHT) {

x = x + 5;

Aquí tenemos un ejemplo más elaborado que detecta si se presiona una tecla.
Nótese que en la función draw no hay código para las teclas. La función “public
void keyPressed()” se llama automáticamente cuando se detecta la presión de una
tecla. Entonces se almacena la tecla en dos variables:

1. key almacena el caracter.

2. keyCode almacena el número.

EJEMPLO 1.
void setup()
{
}
void draw() {
if (keyPressed)
{
println(”El código de la tecla pulsada es:” + keyCode);
}
}
Con este código averiguamos el código de cualquier tecla de función. Esto nos servirá para el
siguiente ejemplo, donde vamos a controlar la posición de un círculo con las teclas de flechas
(izq, der, arriba y abajo).
Si lo ejecutamos, veremos que los códigos son:
• Flecha DERECHA: 39
• Flecha IZQUIERDA: 37
• Flecha ARRIBA: 38
• Flecha ABAJO: 40

EJEMPLO 2.
int x = 300;
int y = 300;
void setup()
{
size(600,600);
background(0,0,0);
}

void draw()
{
if(keyPressed)
{

switch(keyCode)

{
case 38: //arriba……..también admite UP
y--;
break;
case 40: //abajo………también admite DOWN
y++;
break;
case 39: //derecha……también admite RIGHT
x++;
break;
case 37: //izquierda…..también admite LEFT
x--;
break;
default:
break;
}
background(0,0,0);
if(x>=575) //limita la trayectoria hacia la derecha
x= 575;
if(x<=25) //limita la trayectoria hacia la izquierda
x=25;
if(y>=575) //limita la trayectoria hacia abajo
y= 575;
if(y<=25) //limita la trayectoria hacia arriba
y=25;

ellipse(x,y,50,50);
println("x: "+ x +",y: " + y);
}
}

EJEMPLO 3.
void setup()
{
}
void draw() {
}
public void keyPressed() {
if (keyPressed)
{
println("Tecla pulsada: " + key);
println("Código de la Tecla pulsada: " + keyCode);
}
}

Código para juegos que necesitan presionar teclas.


1 // Simple sketch to show key pressed
2 int ballx=0;
3 int bally=0;
4 int speed=10;
5
6 public void setup()
7 {
8 size(600, 600);
9 background(0);
10 }
11
12 void draw()
13 {
14 smooth();
15 background(0);
16 ellipse(ballx,bally,20,20);
17 }
18
19 public void keyPressed()
20 {
21
22 println("Key code pressed: " + keyCode);
23
24 if (key == 'w')
25 {
26 ballUp();
27 }
28 else if (key == 'z')
29 {
30 ballDown();
31 }
32 else if (key == 'a')
33 {
34 ballLeft();
35 }
36 else if (key == 's')
37 {
38 ballRight();
39 }
40
41 }
42 public void keyReleased()
43 {
44 println("Just to let you know a key has been released");
45 }
46
47 void ballUp()
48 {
49 if ( bally >=0 && bally <= width )
50 {
51 bally = bally-speed;
52 }
53 }
54
55 void ballRight()
56 {
57 if ( ballx >=0 && ballx <= width )
58 {
59 ballx = ballx+speed;
60 }
61 }
62
63 void ballLeft()
64 {
65 if ( ballx >=0 && ballx <= width )
66 {
67 ballx = ballx-speed;
68 }
69 }
70 void ballDown()
71 {
72 if ( bally >=0 && bally <= height )
73 {
74 bally = bally+speed;
75 }
76 }

También podría gustarte