Aufgabenserie 08

In dieser Aufgabenserie vertiefst du das bisher gelernte und setzt es in einer weihnachtlichen Animation um.

Weitere Informationen dazu findest du unter:


Aufgabe 01

Kreiere eine ähnliche Animation.
Mit random(minimum, maxixum) kannst du Zufallswerte zwischen minimum und maximum generieren.

Lösung


let nCircles = 1000;
let xCoords = [];
let yCoords = [];
let diameters = [];
let bg;  // Hintergrundbild

// lade das Bild
function preload() {
  bg = loadImage("winter2.jpg");
}


function setup() {
  createCanvas(1000, 750);
  
  for(let i = 0; i < nCircles; i++) {
    xCoords[i] = random(0, width);
    yCoords[i] = random(0, height);
    diameters[i] = random(1, 6);
  }
}

function draw() {
  image(bg, 0, 0, width, height);
  
  for(let i = 0; i < nCircles; i++) {
    let x = xCoords[i];
    let y = yCoords[i];
    let d = diameters[i];
    
    fill(255, 120);
    // verstecke kleine Kreise, welche unterhalb des Grabens
    // in vertikaler Richtung sind
    if(d < 3.5 && y > height / 2 + 30) {
      fill(255, 0);
    }
    noStroke();
    ellipse(x, y, d, d);
    
    // verändere die y-Position
    // die Geschwindigkeit ist umso grösser, 
    // je grösser der Durchmesser ist
    yCoords[i] = yCoords[i] + diameters[i] / 4;
    if(yCoords[i] > height) {
      yCoords[i] = 0;
    }
    
    // bewege die Kreise zufällig in x-Richtung
    xCoords[i] = xCoords[i] + random(-2, 2) / 5;
  }
}


Aufgabe 02

Ergänze deine Animation mit weiteren Elementen.

Zum Beispiel: