// Uebung 03 Fassade Team Ludgerander Variabler Sonnenschutz , Random und Mauskontrolle PImage bg; int active = -1; Sonnenschutz soschu[]; // Variabeln definieren fŸr Sonnenschutz Anzahl und Mausabfrage class Sonnenschutz { float bx; float by; int bs; int bl; float bdifx = 0.0; boolean islocked; color c; Sonnenschutz(float y, int sizex, int sizey, color col) { bx = random(519, 739); by = y; bs = sizex; bl = sizey; islocked = false; c = col; } boolean mouseover() { if (mouseX > bx-bs && mouseX < bx+bs && mouseY > by-bl && mouseY < by+bl) { return true; } else { return false; } } void draw() { fill(c); if(bx < 519) bx = 519; else if(bx > 739 - bs) bx = 739 - bs; rect(bx, by, bs, bl); } void setbx(float newbx) { bx = newbx; } float getbx() { return bx; } float getbdifx() { return bdifx; } void setbdifx(float newbdifx) { bdifx = newbdifx; } void lock(boolean l) { islocked = l; } boolean locked() { return islocked; } } // AusfŸhren des Programms Hintergrund entspricht Grundbild 03.jpg void setup() { size(1273, 700); bg = loadImage("Grundbild 03.jpg"); setupsonnenschutz(); } // Sonnenschutz je 3 Elemente pro Gerschoss, 3 Gršssen siehe Fenstergršssen void setupsonnenschutz() { soschu = new Sonnenschutz[12]; color c = color(0,0,0,180); soschu[0] = new Sonnenschutz(219, 33, 43, c); soschu[1] = new Sonnenschutz(219, 77, 43, c); soschu[2] = new Sonnenschutz(219, 14, 43, c); soschu[3] = new Sonnenschutz(286, 21, 36, c); soschu[4] = new Sonnenschutz(286, 78, 36, c); soschu[5] = new Sonnenschutz(286, 30, 36, c); soschu[6] = new Sonnenschutz(353, 33, 38, c); soschu[7] = new Sonnenschutz(353, 77, 38, c); soschu[8] = new Sonnenschutz(353, 14, 38, c); soschu[9] = new Sonnenschutz(428, 21, 33, c); soschu[10] = new Sonnenschutz(428, 78, 33, c); soschu[11] = new Sonnenschutz(428, 30, 33, c); } void draw() { background(bg); for(int i = 0; i < soschu.length; ++i) soschu[i].draw(); } void mousePressed() { for(int i = 0; i < soschu.length; ++i) { if(soschu[i].mouseover()) { soschu[i].setbdifx(mouseX-soschu[i].getbx()); soschu[i].lock(true); active = i; } else soschu[i].lock(false); } } void mouseDragged() { if(active >= 0) if(soschu[active].locked()) soschu[active].setbx(mouseX-soschu[active].getbdifx()); } void mouseReleased() { for(int i = 0; i < soschu.length; ++i) soschu[i].lock(false); active = -1; }