xxxxxxxxxx
147
let meinHaus;
let meinHund;
let img; // Hier wird das Hundebild dann zugewiesen
let himmelAktuell = 10; // Dies ist der Hellwert des Himmels. Ich arbeite mit dem HSV Farbraum.
function preload() {
img = loadImage('hund2.png');
}
function setup() {
createCanvas(400, 400);
background(0,34,155);
colorMode(HSB);
// Das Schlüsselwort 'new' veranlasst dass
// der abstrakte Bauplan unten, vor allem
// durch den constructor als eine konkrete
// Variable (meinHaus) erstellt wird
meinHaus = new Haus(color(0,255,255) , color(20, 244,0), color(68, 188, 216));
meinHund = new Hund(200, 200);
// Um Informationen vom Arduino zu empfangen
sensoren = new Sensoren();
}
function draw() {
s = sensoren.getLDR();
if (s===-1) {
s = 100;
}
meinHaus.setHimmelFarbe1Kanal(s);
meinHaus.anzeigen();
meinHund.anzeigen();
}
function keyPressed() {
// Hilfsfunktion um Daten vom Arduino verarbeiten zu können
sensoren.nachrichtHinzufuegen(key);
if (key === "W") {
// Klassenbefehl zum Farbwechsel aufrufen
meinHaus.setWandFarbe(color(random(0,255), random(0,255), random(0,255)));
}
if (key === "D") {
// Klassenbefehl zum Farbwechsel aufrufen
meinHaus.setDachFarbe(color(random(0,255), random(0,255), random(0,255)));
}
if (key === "H") {
// Klassenbefehl zum Farbwechsel aufrufen
meinHaus.setHimmelFarbe(color(random(0,255), random(0,255), random(0,255)));
}
if (key === "O") {
meinHund.geheRauf();
console.log("hoch");
}
if (key === "L")
meinHund.geheRunter();
if (key === "I")
meinHund.geheLinks();
if (key === "P")
meinHund.geheRechts();
}
// Definition/Bauplan unseres Objektes/Klasse
// ---------------------------------------------------------------
class Haus {
constructor(fW, fD, fH) {
// Eigenschaften
// Variablen müssen bei Klassen immer
// 'this.' vorangestellt bekommen
this.farbeHimmel = fH;
this.farbeDach = fD;
this.farbeWand = fW;
}
// Klassenfunktion/Methode
anzeigen() {
background(this.farbeHimmel);
fill(this.farbeWand);
rect(200,200,100,100);
fill(this.farbeDach);
triangle(200,200, 250, 50, 300, 200);
}
setWandFarbe(farbeDerWand) {
this.farbeWand = farbeDerWand;
}
setDachFarbe(farbeDesDaches) {
this.farbeDach = farbeDesDaches;
}
setHimmelFarbe(farbeDesHimmels) {
this.farbeHimmel = farbeDesHimmels;
}
setHimmelFarbe1Kanal(wert) {
// rgb(68, 188, 216)
//let tmp = map(wert, 0, 270, 0, 100);
//let col_str = 'hsl(195, 98%,' + tmp + '%)';
this.farbeHimmel = color(195, 98, wert);
}
}
// - - - - - - - - - - - - - - - - - - -
class Hund {
constructor(x, y) {
this.posX = x;
this.posY = y;
}
anzeigen() {
image(img, this.posX, this.posY, 100, 100);
}
geheLinks() {
this.posX--;
}
geheRechts() {
this.posX++;
}
geheRunter() {
this.posY++;
}
geheRauf() {
this.posY--;
}
}