PImage bg; class Snowflake // 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 Snowflake(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 move() { draw(); // Aufruf den Ball zu zeichnen if(xPos + radius > 800) { velX = -1*random(velX); } else if(xPos - radius < -100) { velX = -1*random(velX); } xPos += 2*velX; // Berechnung der neuen X Position yPos += 1*velY; // Berechnung der neuen Y Position if (yPos > height) // Bedingung zur Neupositionierung { // wenn Unten angekommen yPos= -200; } } void draw() { ellipseMode(CENTER); noStroke(); fill(255); ellipse(xPos,yPos,radius*2,radius*2); } } //------------------------------------------------------------------ int numFlakes = 2000; // Anzahl der Schneflocken Snowflake[] myFlakes = new Snowflake[numFlakes]; void setup() // Initialisierung des Programms { size(640,480); // Definition Applet Grösse bg = loadImage("snow2.jpg"); // Hintergrundebild laden for(int i = 0; i < numFlakes; i++) // Schleife zur Generierung der Schneeflocken { myFlakes[i] = new Snowflake(random(.5,3),random(640),-500+random(-1000),random(5),random(5)); } } void draw() { image(bg,0,0); // Zeichne Hintergrundbild for(int i = 0; i < numFlakes;i++) { myFlakes[i].move(); } }