Arrays – create drops on mouseclick

Click on stage to create drops.

boolean locked = false;  // regelt das nur einmal in die If Abfrage gesprungen wird
 
//Array initialisieren mit 10Teilnehmern
float[] tropfenX = new float[10];
float[] tropfenY = new float[10]; //position des letzten Clicks für den Tropfen zum zeichnen
 
int randomGroesse;  //random groesse fur den tropefen beim Clicken
 
int zaehler = 0;  //position im Array
 
void setup() {
  size(400, 400);
 
  // tropfenX.length gibt die Anzahl der Teilnehmer im Array zurück
  for (int i=0; i<tropfenX.length; i++){
    //setzt im Array an der position i einen festen wert
    tropfenX[i] = -10;
    tropfenY[i] = 1;
  }
 
}
 
void draw() {
  background(255);
 
  //wenn mouse gedrückt und locked nicht gesetzt ist...
  if (mousePressed == true && locked == false){
    //...wird locked gesetzt
    locked = true;
 
    //parsen der funktion random mit (int) zu einer Integer Zahl
    //tropfen(mouseX, mouseY, (int)random(20));
 
    //funktion floor rundet eine float zahl auf eine ganzZahl ab
    randomGroesse = floor( random(5, 20) );
 
    //befüllen der variablen mit aktuiellen MousePosition
 
    tropfenX[zaehler] = mouseX;
    tropfenY[zaehler] = mouseY;
 
    //setzt zaehler einen hoch un regelt so die position
    //im Array an dem die neue MousePosition gespeichert wird
    zaehler++;
    //begrenzen des Zählers auf die läge des Arrays
    if (zaehler==tropfenX.length){
      zaehler = 0; 
    }
  }
 
  //zählt durh das gesammte array und zeichnet jeden Teilnehmer i...
  for (int i=0; i<tropfenX.length; i++){
    //lässt tropfen runter fallen
    tropfenY[i] = tropfenY[i] * 1.02;
 
    //springen in die Tropfen Funktion und zeichnen den tropfen an position tropfenX, tropfenY
    tropfen(tropfenX[i], tropfenY[i], randomGroesse);
  }
}
 
void mouseReleased(){
  //wenn die mouse losgelassen wird, wird locked wieder false
  locked = false; 
}
 
void tropfen(float theX, float theY, int groesse){
  //neue Matrix eröffnen
  pushMatrix();
  //setzt Nullpunkt der matrix auf die übergebene Postion theX / theY
  translate(theX, theY);
  //rotieren die matrix um 45grad, damit er gerade erscheint
  rotate( radians(45) );
 
  //Koordinaten für tropfen zeichnung
  //abhängig vom Nullpunkt
  int coord = 0; // X- und Y-Koordinate
 
  //wiedeholt solange bis s gleichgroß der übergebenen groesse wird
  for(int s=0; s<groesse; s++){
    //strichstärke wächst bei jeder schleife abhängig zu s
    strokeWeight(s);
    //setzt einen punkt an den koordinaten coord / coord
    point(coord, coord);
    //setzt coord einen höher
    coord++;
  }
 
  //schliessen der matrix 
  popMatrix();
}
12.06.2010 | admin |