// variablen:-------------------------------------------------- float wind = 1; // windstärke: wert zw. -5 und 5 int staerke = 50; // wert zw. 0 und 300 float naesse = 3; // nässe des schnees: wert zw. 1 und 10 // klasse:---------------------------------------------------------- class Ball { float radius; float xPos; float yPos; float speedX; float speedY; Ball (float r, float x, float y, float sx, float sy) { radius = r; xPos = x; yPos = y; speedX = sx; speedY = sy; } void move() { draw(); if (yPos > height+radius) // wenn Schneeflocke Applet verlässt, { //wird neu gesetzt xPos = random(-200,width+200); yPos = random(-50); } else { xPos += (speedX*random(-1,1)+wind); // Hin- und Herschwirren der Schneeflocke, Einfluss Wind yPos += (speedY*0.1*radius); // Fallgeschwindigkeit in Abhängigkeit des Radiuses } } void draw() //zeichne Schneeflocke { ellipseMode(CENTER); ellipse(xPos, yPos, radius*2, radius*2); fill(255); smooth(); noStroke(); } } //---------------------------------------------------- int ballnumber = staerke; // Anzahl der Bälle Ball[] myBalls = new Ball[ballnumber]; // Definition Ball Array // somit kann jeder Ball // später durch seinen Index // direkt angesprochen // werden void setup() // Initialisierung des Programms { size(800,600); // Definition Applet Grösse for(int i = 0; i < ballnumber; i++) // Schleife zur Generierung { // von den 50 Bällen // Instanzierung der Klasse Ball mir Random Werten myBalls[i] = new Ball((float)random(5,20),random(-200,width+200),random(-height),1,naesse); } } void draw() // Wird an jeder Frame aufgerufen { background(10,10,30); // Zeichne Hintergrund rect(0,height-60,width,60); // Zeichne Boden for(int i = 0; i < ballnumber;i++) // Schleife durch das { // myBall Array um alle myBalls[i].move(); // Bälle zu bewegen } }