import processing.core.*; import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import java.util.zip.*; import java.util.regex.*; public class Typing extends PApplet { /** * Typing (Excerpt from the piece Textension) * by Josh Nimoy. * * Click in the window to give it focus. * Type to add letters and press backspace or delete to remove them. */ int leftmargin = 10; int rightmargin = 20; String buff = ""; boolean didntTypeYet = true; public void setup() { size(640, 360, P3D); textFont(loadFont("Univers45.vlw"), 25); } public void draw() { background(176); if((millis() % 500) < 250){ // Only fill cursor half the time noFill(); } else{ fill(255); stroke(0); } float rPos; // Store the cursor rectangle's position rPos = textWidth(buff)+leftmargin; rect(rPos+1, 19, 10, 21); // Some instructions at first if(didntTypeYet){ fill(0); //text("Use the keyboard.", 22, 40); } fill(0); pushMatrix(); translate(rPos,10+25); char k; for(int i=0;i0){ buff = buff.substring(1); } break; case 13: // Avoid special keys case 10: case 65535: case 127: case 27: break; default: if(textWidth(buff+k)+leftmargin < width-rightmargin){ didntTypeYet = false; buff=k+buff; } break; } } static public void main(String args[]) { PApplet.main(new String[] { "Typing" }); } }