DIP - Programmierung Teil 3 Übung7: Unterschied zwischen den Versionen

Aus DDSWiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „400px = Aufgabe a = * Der obige "Wanderer" soll als Klasse implementiert und als Kreis dargestellt werden * Er soll eine Koordinate ha…“)
 
(Aufgabe c)
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[file:bunteshaus.png|400px]]
+
[[image:bunteshaus.png|400px]]
  
 
= Aufgabe a =
 
= Aufgabe a =
* Der obige "Wanderer" soll als Klasse implementiert und als Kreis dargestellt werden
+
* Das obige Haus soll "nachgebaut" werden und zwar als Klasse, d.h. in einer '''Objekt Orientierten''' Denkweise
* Er soll eine Koordinate haben
+
** Das Haus soll Funktionen haben zum wechseln der Farben des Daches, der Wand und des Hintergrundes (Himmel)
* Die Klasse soll Funktionen haben, um
+
* Auf Tastendruck ("W" und "D") sollen sich die Farbe von Wand und Dach ändern
** Die Farbe des Kreises zu verändern
+
* Bitte beachte: verwende Großbuchstaben ("W"), sonst kommen wir bei einer späteren Übung mit dem Protokoll des Arduino Boards durcheinander
** Den Durchmesser des Kreises zu verändern
+
<pre>
** Die Position des Kreises zu verändern
+
 
 +
function keyPressed() {
 +
  if (key === "W") {
 +
    // Klassenbefehl zum Farbwechsel aufrufen
 +
    meinHause.setFarbe( ....
 +
  }
 +
}
 +
 
 +
</pre>
  
 
= Aufgabe b =
 
= Aufgabe b =
* Ermögliche, dass der Wanderer mit den Arrow Keys gesteuert wird
+
* Auf Tastendruck ("H") soll ein Bild (PNG) ein und ausgeblendet werden (in meinem Beispiel ist das ein Hund)
* Wenn am Rand der Leinwand ankommt, soll er einfach stehen bleiben
+
 
 +
<pre>
 +
 
 +
let img;
 +
function preload() {
 +
  img = loadImage('assets/laDefense.jpg');
 +
}
 +
function setup() {
 +
  image(img, 0, 0);
 +
}
 +
 
 +
</pre>
  
 
= Aufgabe c =
 
= Aufgabe c =
* Steure den Wanderer mit Hilfe von 2 Potentiometern (links-rechts und hoch-runter)! Dafür brauchst du unsere eigene sensorBoard Library
+
* Der Lichtsensor soll die Helligkeit des Himmels steuern. Tip: Im HSV Farbraum arbeiten -- Hue/Farbwert - Saturation - Value/Hellwert
* Ausserdem soll der Wanderer auf Knopdruck seine Farbe ändern
 
 
** [[P5js Funktionen für die Kommunikation mit dem Arduino Board|Übersicht sensorBoard Library]]
 
** [[P5js Funktionen für die Kommunikation mit dem Arduino Board|Übersicht sensorBoard Library]]
 +
** [https://owncloud.tuwien.ac.at/index.php/s/vb2uQ17MydFXHQ5 Direkt-Link zur Library]
 +
 +
<pre>
 +
Die Library muss zu den anderen Dateien des Projektes kopiert werden
 +
Dann muss die Library noch eingebunden werden in der index.html
 +
 +
<!DOCTYPE html>
 +
<html lang="en">
 +
  <head>
 +
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>
 +
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/addons/p5.sound.min.js"></script>
 +
    <script src="sensorBoard.js"></script>
 +
    <link rel="stylesheet" type="text/css" href="style.css">
 +
    <meta charset="utf-8" />
 +
 +
  </head>
 +
  <body>
 +
    <script src="sketch.js"></script>
 +
  </body>
 +
</html>
 +
 +
 +
Im Editor ist die Library dann so zu verwenden
 +
 +
sensoren = new Sensoren();
 +
sensoren.getLDR();
 +
.
 +
.
 +
.
 +
function keyPressed() {
 +
  sensoren.nachrichtHinzufuegen(key);
 +
}
 +
 +
 +
 +
</pre>
 +
 +
= Aufgabe d =
 +
* Bonus: Wenn du zu schnell unterwegs bist und dir fad wird - Steuere die Position des Hundes bzw. Bildes mit 2 Tasten nach links und rechts
  
= Aufgabe d (Bonus-Aufgabe) =
 
* Wenn du schneller fertig bist als die anderen, lass dir eine eigene Erweiterung einfallen. Z.B. schließe einen weiteren Sensor an und verändere zusätzliche Parameter des Wanderers
 
  
 
== Interessante Funktionen für diese Aufgabe ==
 
== Interessante Funktionen für diese Aufgabe ==
Zeile 26: Zeile 81:
  
 
== Gemeinsam erarbeitete Lösung ==
 
== Gemeinsam erarbeitete Lösung ==
* https://editor.p5js.org/flotorious/sketches/da6DH3KkS
+
* https://editor.p5js.org/flotorious/sketches/PthUAukoD
  
<iframe key="p5js" path="flotorious/sketches/da6DH3KkS" w="1000" h="800"></iframe>
+
<iframe key="p5js" path="flotorious/sketches/PthUAukoD" w="1000" h="800"></iframe>

Aktuelle Version vom 13. August 2020, 19:40 Uhr

Bunteshaus.png

Aufgabe a

  • Das obige Haus soll "nachgebaut" werden und zwar als Klasse, d.h. in einer Objekt Orientierten Denkweise
    • Das Haus soll Funktionen haben zum wechseln der Farben des Daches, der Wand und des Hintergrundes (Himmel)
  • Auf Tastendruck ("W" und "D") sollen sich die Farbe von Wand und Dach ändern
  • Bitte beachte: verwende Großbuchstaben ("W"), sonst kommen wir bei einer späteren Übung mit dem Protokoll des Arduino Boards durcheinander

function keyPressed() {
  if (key === "W") {
     // Klassenbefehl zum Farbwechsel aufrufen
     meinHause.setFarbe( .... 
  }
}

Aufgabe b

  • Auf Tastendruck ("H") soll ein Bild (PNG) ein und ausgeblendet werden (in meinem Beispiel ist das ein Hund)

let img;
function preload() {
  img = loadImage('assets/laDefense.jpg');
}
function setup() {
  image(img, 0, 0);
}

Aufgabe c

Die Library muss zu den anderen Dateien des Projektes kopiert werden
Dann muss die Library noch eingebunden werden in der index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/addons/p5.sound.min.js"></script>
    <script src="sensorBoard.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta charset="utf-8" />

  </head>
  <body>
    <script src="sketch.js"></script>
  </body>
</html>


Im Editor ist die Library dann so zu verwenden

sensoren = new Sensoren();
sensoren.getLDR();
.
.
.
function keyPressed() {
  sensoren.nachrichtHinzufuegen(key); 
}



Aufgabe d

  • Bonus: Wenn du zu schnell unterwegs bist und dir fad wird - Steuere die Position des Hundes bzw. Bildes mit 2 Tasten nach links und rechts


Interessante Funktionen für diese Aufgabe

Gemeinsam erarbeitete Lösung