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

Aus DDSWiki
Wechseln zu: Navigation, Suche
(Aufgabe c)
(Aufgabe b)
Zeile 10: Zeile 10:
 
= Aufgabe b =
 
= Aufgabe b =
 
* Wenn der Punkt über den Rand hinausläuft, soll er abprallen
 
* Wenn der Punkt über den Rand hinausläuft, soll er abprallen
 +
* Tip: Der folgende Code lässt die Kugel abprallen (Einfallswinkel gleich Ausfallswinkel)
 +
<pre>
 +
 +
kantenKontrollieren() {
 +
    if (this.ort.y>height) {
 +
      let n = createVector(0, -1);
 +
      let r = this.geschwindigkeit.copy();
 +
      this.geschwindigkeit.reflect(n);
 +
    }
 +
    if (this.ort.x>width) {
 +
      let n = createVector(-1, 0);
 +
      let r = this.geschwindigkeit.copy();
 +
      this.geschwindigkeit.reflect(n);
 +
    }   
 +
    if (this.ort.y<0) {
 +
      let n = createVector(0, 1);
 +
      let r = this.geschwindigkeit.copy();
 +
      this.geschwindigkeit.reflect(n);
 +
    }
 +
    if (this.ort.x<0) {
 +
      let n = createVector(1, 0);
 +
      let r = this.geschwindigkeit.copy();
 +
      this.geschwindigkeit.reflect(n);
 +
    }     
 +
  } 
 +
 +
<pre>
  
 
= Aufgabe c =
 
= Aufgabe c =

Version vom 13. August 2020, 18:18 Uhr

(Hinweis: Klick auf mich und dann teste die Tasten A D W S)

Aufgabe a

  • Ändere das vorhergehende Beispiel so ab, dass der Punkt nun von alleine mit einer bestimmten Geschwindigkeit läuft
  • Verwende wieder eine Objekt Orientierte Programmierung
  • Wenn der Punkt über den Rand hinausläuft, soll er an der entgegengesetzten Kante wieder herauskommen

Aufgabe b

  • Wenn der Punkt über den Rand hinausläuft, soll er abprallen
  • Tip: Der folgende Code lässt die Kugel abprallen (Einfallswinkel gleich Ausfallswinkel)

kantenKontrollieren() {
    if (this.ort.y>height) {
      let n = createVector(0, -1);
      let r = this.geschwindigkeit.copy();
      this.geschwindigkeit.reflect(n);
    }
    if (this.ort.x>width) {
      let n = createVector(-1, 0);
      let r = this.geschwindigkeit.copy();
      this.geschwindigkeit.reflect(n);
    }    
    if (this.ort.y<0) {
      let n = createVector(0, 1);
      let r = this.geschwindigkeit.copy();
      this.geschwindigkeit.reflect(n);
    } 
    if (this.ort.x<0) {
      let n = createVector(1, 0);
      let r = this.geschwindigkeit.copy();
      this.geschwindigkeit.reflect(n);
    }      
  }  

<pre>

Aufgabe c

(Click on me!)

  • Bonus: Verwende ein Array und erstelle einen Haufen punkte die mit zufälligen Geschwindigkeiten und Richtungen über die Leinwand fahren

Aufgabe d

  • Bonus: Programmiere, dass die Punkte sich beschleunigen
  • Bonus: Programmiere, dass die Tasten am Keyboard die Beschleunigung verändern können

Interessante Funktionen für diese Aufgabe

Gemeinsam erarbeitete Lösung