DIP - Programmierung Teil 3 Übung9: Unterschied zwischen den Versionen
(→Aufgabe c) |
(→Aufgabe c) |
||
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<iframe key="p5js" path="flotorious/embed/JYEGwKwfU" w="400" h="400"></iframe> | <iframe key="p5js" path="flotorious/embed/JYEGwKwfU" w="400" h="400"></iframe> | ||
− | (Hinweis: Klick auf mich und dann teste die Tasten | + | (Hinweis: Klick auf mich und dann teste die Tasten a d w s) |
= Aufgabe a = | = Aufgabe a = | ||
− | + | * Wenn der Punkt über den Rand hinausläuft, soll er abprallen | |
− | + | * Tip: Der folgende Code lässt die Kugel abprallen (Einfallswinkel gleich Ausfallswinkel) | |
− | * Wenn der Punkt über den Rand hinausläuft, soll er | + | <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> | |
− | |||
− | + | <iframe key="p5js" path="flotorious/sketches/da6DH3KkS" w="1000" h="800"></iframe> | |
− | <iframe key="p5js" path="flotorious/ | ||
+ | = Aufgabe b = | ||
+ | * Bonus: Verwende ein Array und erstelle einen Haufen Punkte die mit zufälligen Geschwindigkeiten und Richtungen über die Leinwand fahren | ||
+ | <iframe key="p5js" path="flotorious/sketches/3YeHirNsr" w="1000" h="800"></iframe> | ||
(Click on me!) | (Click on me!) | ||
− | + | = Aufgabe c = | |
− | |||
− | = Aufgabe | ||
* Bonus: Programmiere, dass die Punkte sich beschleunigen | * Bonus: Programmiere, dass die Punkte sich beschleunigen | ||
* Bonus: Programmiere, dass die Tasten am Keyboard die Beschleunigung verändern können | * Bonus: Programmiere, dass die Tasten am Keyboard die Beschleunigung verändern können | ||
+ | * Bonus: Mache sonst noch irgendwas Verrücktes mit den Punkten | ||
+ | * https://editor.p5js.org/flotorious/sketches/o2M2eANtHO | ||
+ | <iframe key="p5js" path="flotorious/sketches/o2M2eANtHO" w="1000" h="800"></iframe> | ||
== Interessante Funktionen für diese Aufgabe == | == Interessante Funktionen für diese Aufgabe == | ||
− | * | + | * [https://p5js.org/reference/ Referenz von p5js] |
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Aktuelle Version vom 30. Oktober 2023, 18:31 Uhr
(Hinweis: Klick auf mich und dann teste die Tasten a d w s)
Inhaltsverzeichnis
Aufgabe a
- 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); } }
Aufgabe b
- Bonus: Verwende ein Array und erstelle einen Haufen Punkte die mit zufälligen Geschwindigkeiten und Richtungen über die Leinwand fahren
(Click on me!)
Aufgabe c
- Bonus: Programmiere, dass die Punkte sich beschleunigen
- Bonus: Programmiere, dass die Tasten am Keyboard die Beschleunigung verändern können
- Bonus: Mache sonst noch irgendwas Verrücktes mit den Punkten
- https://editor.p5js.org/flotorious/sketches/o2M2eANtHO