class Ball // Klassendefinition { float radius; // Radius Variable float xPos; // Position in X float yPos; // Position in Y float velX; // Geschwindigkeit in X float velY; // Geschwindigkeit in Y Ball(float r, float xp, float yp ,float vx, float vy) { radius = r; // Wertźbergabe von lokalen xPos = xp ; // zu globalen Variablen yPos = yp; // źbergeben aus Instanzierung velX = vx; // Dieses Mal auch mit der velY = vy; // Geschwindigkeit } void schneien() { draw(); // Aufruf den Ball zu zeichnen velY = random(1,3); velX = random(-0.2,1); xPos += velX; yPos += velY; if(yPos - radius > height) { yPos=0; } if(xPos - radius > width) { xPos = 0 - radius; } if (xPos + radius < 0) { xPos = width + radius; } // neue y-position } void draw() // Zeichenmethode { ellipseMode(CENTER); // setzt Kreismittelpunkt fill(255); ellipse(xPos,yPos,radius*2,radius*2); // zeichne Ellipse } } //------------------------------------------------------------------ int ballnumber = 300; // Anzahl der Flocken Ball[] myBalls = new Ball[ballnumber]; // Definition Ball Array void setup() // Initialisierung des Programms { size(500,500); // 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(random(2,8),random(width),random(height),random(-1,1),random(1,3)); } } void draw() // Wird an jeder Frame aufgerufen { background(0,0,50); // Zeichne Hintergrund for(int i = 0; i < ballnumber ; i++) // Schleife durch das { // myBall Array um alle myBalls[i].schneien(); // BŠlle zu bewegen } }