Manchmal ist es sinnvoller, ein Mausereignis unabhängig von der draw-Funktion auszuwerten.
Dazu können sogenannte event-Funktionen (Ereignisfunktionen), wie im folgenden Beispiel dargestellt. genutzt werden.
Sobald die Maustaste niedergedrückt wird, erhält die globale Variable „rotanteil“ den Wert 255. Bei Abarbeitung der draw-Funktion wird nun mit diesem Wert gearbeitet. In dem Augenblick, wo die Maustaste wieder losgelassen wird, erhält die Variable „rotanteil“ wieder den Wert 0.
Eine typische Anwendung nebenläufiger Mausauswertung ist die Programmierung von Schaltflächen.
Übungen zur nebenläufigen Auswertung der Maustasten
1. Auftrage: Erstellung eines Ampelprogramms
Stellen Sie dazu eine Ampel (rot, gelb, grün) dar. Lassen Sie mit jedem Mausklick die Ampel umschalten.
2. Auftrag: Erweiterung der Ampel
Erweitern Sie das Ampelprogramm, so dass die Ampel nur umschaltet, wenn mit der Maus auf die Ampel geklickt wurde.
3. Auftrag: Test eines Schaltflächenprogramms
Testen Sie unten abgebildete Schaltflächenprogramm. Ändern Sie es derart, dass die Textanzeige umschaltet, wenn die Maustaste losgelassen wird.
int knopfX = 20; int knopfY = 20; int knopfBreite=160; int knopfHoehe=40; int zeigeText=0; void setup() { fill(0, 0, 255); size(200,200); } void draw() { background(200); rect(knopfX, knopfY, knopfBreite, knopfHoehe); if(zeigeText!=0) { textSize(32); text("Hallo", 60, 100); } } void mousePressed() { if(mouseX>knopfX && mouseX < (knopfX+knopfBreite) && mouseY>knopfY && mouseY < (knopfY+knopfHoehe)) { if(zeigeText==0) zeigeText=1; else zeigeText=0; } }