xxxxxxxxxx
107
let meineWanderer = [];
let kugel;
function setup() {
createCanvas(500, 500);
// im Klammer (x, y, geschwX, geschY,beschlX, beschlY, erste Farbe - egal)
//kugel = new Wanderer(100, 120, 1, 0, -1, -1, 0)
for (i=0; i<12; i++) {
meineWanderer[i] = new Wanderer(random(0, width), random(0, height), random(-1.1), random(-1,1), random(-1,1), random(-1,1), 0, random(40,60))
}
}
function draw() {
background(255)
//Kreis Farbe (rot, gelb, blau)
/*kugel.setKreisFarbe(255, 255, 80)
kugel.aktualisieren();
//Durchmesser
kugel.anzeigen(60);
kugel.kantenKontrollieren(); */
for (i=0; i<12; i++) {
meineWanderer[i].setKreisFarbe(255, 255, 80)
meineWanderer[i].aktualisieren();
//Durchmesser
meineWanderer[i].anzeigen(60);
meineWanderer[i].kantenKontrollieren();
}
}
class Wanderer {
constructor(x,y,vx, vy, ax, ay, f, d){
this.ort = createVector(x, y);
this.geschwindigkeit = createVector(vx, vy)
this.beschleunigung = createVector(ax, ay)
this.farbe = f
//Definition der Variable, um später ändern zu können
this.rot = 0
this.gruen = 0
this.blau = 0
this.durchmesser = d;
}
aktualisieren() {
this.geschwindigkeit.add(this.beschleunigung)
this.geschwindigkeit.limit(8)
this.ort = this.ort.add(this.geschwindigkeit)
}
anzeigen() {
// fill(color(this.rot, this.gruen, this.blau))
colorMode(HSB);
fill(map(this.ort.x,0,width,0,120)+map(this.ort.x,0,height,0,120), map(mouseX, 0, width,0, 100), map(mouseY, 0 , height, 0, 100));
circle(this.ort.x, this.ort.y, this.durchmesser)
colorMode(RGB);
fill(255)
circle(this.ort.x-10, this.ort.y-8, 12)
circle(this.ort.x-12, this.ort.y-9, 2)
circle(this.ort.x+10, this.ort.y-8, 12);
circle(this.ort.x+8, this.ort.y-9, 2)
fill(255, 80, 80)
arc(this.ort.x, this.ort.y+5, 30, 30, 0, PI, CHORD);
fill(0)
rect(this.ort.x-35, this.ort.y-40, 70, 20)
fill(0)
rect(this.ort.x-20, this.ort.y-60, 40, 40)
}
setKreisFarbe(r, g, b) {
this.rot = r
this.gruen = g
this.blau = b
}
kantenKontrollieren() {
if (this.ort.y>height) {
let n = createVector(0, -1);
let r = this.geschwindigkeit.copy();
this.geschwindigkeit.reflect(n);
this.beschleunigung.reflect(n);
}
if (this.ort.x>width) {
let n = createVector(-1, 0);
let r = this.geschwindigkeit.copy();
this.geschwindigkeit.reflect(n);
this.beschleunigung.reflect(n);
}
if (this.ort.y<0) {
let n = createVector(0, 1);
let r = this.geschwindigkeit.copy();
this.geschwindigkeit.reflect(n);
this.beschleunigung.reflect(n);
}
if (this.ort.x<0) {
let n = createVector(1, 0);
let r = this.geschwindigkeit.copy();
this.geschwindigkeit.reflect(n);
this.beschleunigung.reflect(n)
}
}
}