Arbeiten mit Klassen: ein simples Malprogramm zur Erklärung: Unterschied zwischen den Versionen
(→Der Code aus den Videos zum selbst ausprobieren) |
|||
Zeile 23: | Zeile 23: | ||
void draw() { | void draw() { | ||
+ | // Zeichnen eines Punktes bei gedrückter Maustaste | ||
if (mousePressed) { | if (mousePressed) { | ||
strokeWeight(pinselStaerke); | strokeWeight(pinselStaerke); | ||
Zeile 33: | Zeile 34: | ||
} | } | ||
+ | // Hilfsfunktion, die je Knopfzustand (gedrückt oder nicht) verschiedene Aktionen durchführt | ||
void buttonAuswerten(int b) { | void buttonAuswerten(int b) { | ||
switch(b) { | switch(b) { | ||
Zeile 79: | Zeile 81: | ||
} | } | ||
− | + | // Die Klasse Button | |
class Button { | class Button { | ||
// Klassenvariablen | // Klassenvariablen | ||
Zeile 97: | Zeile 99: | ||
} | } | ||
+ | // Zeigt den Knopf am Canvas an | ||
+ | // Gibt -1 zurück, wenn der Knopf nicht gedrückt ist | ||
+ | // Gibt die Id des Knopfes zurück, wenn er gedrückt ist | ||
int anzeigen() { | int anzeigen() { | ||
int r = -1; | int r = -1; |
Version vom 21. März 2020, 23:01 Uhr
Der Code aus den Videos zum selbst ausprobieren
Button farbButton = new Button("Rot", 1, 0, 0, 100, 50); int farbe = 1; int pinselStaerke = 1; color col = color(255, 0, 0); Button pinselButton = new Button("Pinsel: " + pinselStaerke, 2, farbButton.getWidth(), 0, 100, 50); long buttonLastPressed = 0; void setup() { size(800, 400); background(240); } void draw() { // Zeichnen eines Punktes bei gedrückter Maustaste if (mousePressed) { strokeWeight(pinselStaerke); stroke(col); point(mouseX, mouseY); } buttonAuswerten(farbButton.anzeigen()); buttonAuswerten(pinselButton.anzeigen()); } // Hilfsfunktion, die je Knopfzustand (gedrückt oder nicht) verschiedene Aktionen durchführt void buttonAuswerten(int b) { switch(b) { case -1: // do nothing break; case 1: // Knopf mit Id #1 ist gedrückt if (millis() - buttonLastPressed>500) { println("KNOPF 1 GEDRÜCKT !!"); farbe++; if (farbe>4) { farbe = 1; } if (farbe==1) { farbButton.setLabel("Rot"); col = color(255,0,0); } if (farbe==2) { farbButton.setLabel("Grün"); col = color(0,255,0); } if (farbe==3) { farbButton.setLabel("Gelb"); col = color(255,255,0); } if (farbe==4) { farbButton.setLabel("Radierer"); col = color(240); } buttonLastPressed = millis(); } break; case 2: if (millis() - buttonLastPressed>500) { println("KNOPF 2 GEDRÜCKT !!"); pinselStaerke++; if (pinselStaerke > 9) { pinselStaerke = 1; } pinselButton.setLabel("Pinsel: "+ pinselStaerke); buttonLastPressed = millis(); } break; } } // Die Klasse Button class Button { // Klassenvariablen String label; int id; int xPos, yPos, width_, height_; // Constructor Button(String l, int id_, int x, int y, int w, int h) { label = l; id = id_; xPos = x; yPos = y; width_ = w; height_ = h; } // Zeigt den Knopf am Canvas an // Gibt -1 zurück, wenn der Knopf nicht gedrückt ist // Gibt die Id des Knopfes zurück, wenn er gedrückt ist int anzeigen() { int r = -1; if ((mouseX>=xPos) && (mouseX<=xPos+width_) && (mouseY>=yPos) && (mouseY<=yPos+height_)) { stroke(204,102,0); fill(255); if (mousePressed) { fill(120); r = id; } } else { stroke(0,0,0); fill(255); } //fill(255); strokeWeight(1); rect(xPos, yPos, width_, height_); fill(0); textAlign(CENTER, CENTER); text(label, xPos+width_/2, yPos+height_/2); return r; } int getWidth() { return width_; } int getHeight() { return height_; } void setLabel(String l) { label = l; } }