Initial Commit
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* Keyboard Functions.
|
||||
* Modified from code by Martin.
|
||||
* Original 'Color Typewriter' concept by John Maeda.
|
||||
*
|
||||
* Click on the window to give it focus and press the letter keys to type colors.
|
||||
* The keyboard function keyPressed() is called whenever
|
||||
* a key is pressed. keyReleased() is another keyboard
|
||||
* function that is called when a key is released.
|
||||
*/
|
||||
|
||||
int maxHeight = 40;
|
||||
int minHeight = 20;
|
||||
int letterHeight = maxHeight; // Height of the letters
|
||||
int letterWidth = 20; // Width of the letter
|
||||
|
||||
int x = -letterWidth; // X position of the letters
|
||||
int y = 0; // Y position of the letters
|
||||
|
||||
boolean newletter;
|
||||
|
||||
int numChars = 26; // There are 26 characters in the alphabet
|
||||
color[] colors = new color[numChars];
|
||||
|
||||
void setup() {
|
||||
size(640, 360);
|
||||
noStroke();
|
||||
colorMode(HSB, numChars);
|
||||
background(numChars/2);
|
||||
// Set a hue value for each key
|
||||
for(int i = 0; i < numChars; i++) {
|
||||
colors[i] = color(i, numChars, numChars);
|
||||
}
|
||||
}
|
||||
|
||||
void draw() {
|
||||
if(newletter == true) {
|
||||
// Draw the "letter"
|
||||
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()
|
||||
{
|
||||
// If the key is between 'A'(65) to 'Z' and '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;
|
||||
|
||||
// Update the "letter" position
|
||||
x = ( x + letterWidth );
|
||||
|
||||
// Wrap horizontally
|
||||
if (x > width - letterWidth) {
|
||||
x = 0;
|
||||
y+= maxHeight;
|
||||
}
|
||||
|
||||
// Wrap vertically
|
||||
if( y > height - letterHeight) {
|
||||
y = 0; // reset y to 0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user