Benutzereingaben
In Processing gibt es einige Funktionen, die automatisch aufgerufen werden, wenn bestimmte Ereignisse auftreten.
Wenn der Benutzer beispielsweise eine Taste auf der Tastatur drückt, wird automatisch die Funktion „keyPressed()“ aufgerufen.
Zunächst gibt es diese Funktion gar nicht. Wenn wir in unseren Programm auf einen Tastendruck reagieren wollen, müssen wir diese Funktion erst einmal definieren.
void keyPressed() { // hier können wir Anweisungen hinschreiben, // die automatisch ausgeführt werden, wenn // der Benutzer eine Taste drückt }
Hier eine kurze Auflistung von vordefinierten Funktionen in Processing:
void setup()
Wird genau einmal aufgerufen, wenn das Programm startet. Dort schreiben wir Anweisungen, die unser Programm zu Beginn einmalig ausführt, wie z.B. die Fenstergröße setzen.
void draw()
Wird regelmäßig für jeden Frame (ca. 60 mal pro Sekunde) aufgerufen. Dort schreiben wir die Anweisungen, die kontinuierlich ausgeführt werden.
Tastaturfunktionen:
void keyPressed()
Wird immer dann aufgerufen, wenn der Benutzer eine Taste drückt.
void keyReleased()
Wird aufgerufen, wenn eine Taste losgelassen wird.
Um herauszufinden, welche Taste gedrückt wurde, kann man die Variable „key“ verwenden. Dazu kann man „key“ mit Buchstaben vergleichen. Die Buchstaben müssen dabei in einfachen Anführungszeichen stehen: ,a‘:
void keyPressed() { if ( key == ,a‘ ) { println( „Taste ,a‘ wurde gedrückt“ ; } }
Es kann auch größer und kleiner abgefragt werden:
void keyPressed() { if ( (key >= ,A‘) & (key<=‘z‘) ) { println( „Ein Buchstabe wurde eingegeben“ ; } }
Wenn die Taste „größer oder gleich“ als ,A‘ und „kleiner oder gleich“ als ,z‘ ist, wird eine Meldung ausgegeben.
Für den Vergleich „größer“ oder „kleiner“ gilt dabei folgende Reihenfolge:
!"#$%&'()*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Sondertasten können mit der Variable keyCode abgefragt werden. Diese Variable kann mit folgenden Variablen verglichen werden:
BACKSPACE, TAB, ENTER, RETURN, ESC, DELETE UP, DOWN, LEFT, RIGHT ALT, CONTROL, SHIFT
Damit können z.B. Tastatursteuerung für Spiele programmiert werden:
float x = 0; float y = 0; void draw() { background( 0 ); rect( x, y, 20, 20 ); } void keyPressed() { if ( keyCode == UP ) { y--; } else if ( keyCode == DOWN ) { y++; } else if ( keyCode == LEFT ) { x--; } else if ( keyCode == RIGHT ) { x++; } }
Mausfunktionen
void mousePressed()
Wird aufgerufen, wenn eine Maustaste gedrückt wird
void mouseReleased()
Wird aufgerufen, wenn eine Maustaste losgelassen wird
Dabei kann die Variable „mouseButton“ abgefragt werden, um herauszufinden, welche Taste gedrückt wurde. Mögliche Werte sind:
LEFT, RIGHT und CENTER void mousePressed() { if ( mouseButton == LEFT ) { println( „Linke Maustaste gedrückt“); } }
void mouseMoved()
Wird immer aufgerufen, wenn sich die Maus bewegt und keine Maustaste gedrückt ist.
void mouseDragged()
Wird immer aufgerufen, wenn sich die Maus bewegt und eine Maustaste gedrückt ist.
Mit den Variablen „mouseX“ und „mouseY“ kann die Position der Maus im Fenster ermittelt werden:
void mouseDragged() { rect( mouseX, mouseY, 20, 20 ); }
Zeichnet bei gedrückter Maustaste ein Rechteck an die Mausposition.
Für komplexere Eingabemölglichkeiten und Benutzeroberflächen müssen wir Bibliotheken von der Processing Website herunterladen und installieren. Dazu bald mehr.