-
Notifications
You must be signed in to change notification settings - Fork 115
Expand file tree
/
Copy pathKeyboardFunctions.es.pde
More file actions
87 lines (76 loc) · 2.08 KB
/
KeyboardFunctions.es.pde
File metadata and controls
87 lines (76 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/**
* Funciones de Teclado
* por Martin Gomez
*
* Haz click en la ventana para darle el foco y presiona teclas de letras para distintos colores.
* La función de teclado keyPressed() es llamada cada vez que una tecla es presionada.
* keyReleased() es otra función de teclado que es llamada cuando la tecla es liberada.
*
* Concepto original 'Color Typewriter' por John Maeda.
*/
int maxHeight = 40;
int minHeight = 20;
int letterHeight = maxHeight; // Altura de las letras
int letterWidth = 20; // Ancho de las letras
int x = -letterWidth; // Posición en X de las letras
int y = 0; // Posición en Y de las letras
boolean newletter;
int numChars = 26; // Hay 26 letras en el alfabeto
color[] colors = new color[numChars];
void setup() {
size(640, 360);
noStroke();
colorMode(HSB, numChars);
background(numChars/2);
// Define un matiz por cada letra
for(int i = 0; i < numChars; i++) {
colors[i] = color(i, numChars, numChars);
}
}
void draw() {
if(newletter == true) {
// Dibuja la letra
int y_pos;
if (letterHeight == maxHeight) {
y_pos = y;
rect( x, y_pos, letterWidth, letterHeight );
} else {
y_pos = y + minHeight;
rect( x, y_pos, letterWidth, letterHeight );
fill(numChars/2);
rect( x, y_pos-minHeight, letterWidth, letterHeight );
}
newletter = false;
}
}
void keyPressed()
{
// Si la tecla esta entre 'A'(65) y 'Z' o 'a' to 'z'(122)
if((key >= 'A' && key <= 'Z') || (key >= 'a' && key <= 'z')) {
int keyIndex;
if(key <= 'Z') {
keyIndex = key-'A';
letterHeight = maxHeight;
fill(colors[keyIndex]);
} else {
keyIndex = key-'a';
letterHeight = minHeight;
fill(colors[keyIndex]);
}
} else {
fill(0);
letterHeight = 10;
}
newletter = true;
// Actualiza la posición de la letra
x = ( x + letterWidth );
// Envuelve horizontalmente
if (x > width - letterWidth) {
x = 0;
y+= maxHeight;
}
// Envolvemos verticalmente
if( y > height - letterHeight) {
y = 0; // Ponemos y a 0
}
}