Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
start:skript:tut4 [2018/11/12 17:16] luismeixner |
start:skript:tut4 [2018/11/12 17:33] (aktuell) luismeixner |
||
---|---|---|---|
Zeile 29: | Zeile 29: | ||
<code java> | <code java> | ||
class Ball { | class Ball { | ||
- | float SIZE = 30; // Durchmesser | + | float SIZE = 30; //Durchmesser |
- | float xMax; // Max. x-Koordinate fuer die Generierung mit random() | + | float xMax; //Max. x-Koordinate für die Generierung mit random() |
- | float speedMax; // Max. Geschwindigkeit fuer die Generierung mit random() | + | float speedMax; //Max. Geschwindigkeit für die Generierung mit random() |
- | float x; // aktuelle x-Koordinate | + | float x; //aktuelle x-Koordinate |
- | float y; // aktuelle y-Koordinate | + | float y; //aktuelle y-Koordinate |
- | float speed; // Geschwindigkeit | + | float speed; //Geschwindigkeit |
Ball(float xMax, int speedMax) { | Ball(float xMax, int speedMax) { | ||
this.xMax = xMax; | this.xMax = xMax; | ||
this.speedMax = speedMax; | this.speedMax = speedMax; | ||
- | x = random(xMax); // generiere die Position "zufaellig" | + | x = random(xMax); //generiere die Position "zufällig"(Zufallszahl von 0 bis xMax) |
y = 0; | y = 0; | ||
- | speed = random(speedMax); // generiere die Geschwindigkeit "zufaellig" | + | speed = random(speedMax); //generiere die Geschwindigkeit "zufällig" |
} | } | ||
- | // Zeichnet den Ball | + | //Zeichnet den Ball: |
void draw() { | void draw() { | ||
ellipse(x, y, SIZE, SIZE); | ellipse(x, y, SIZE, SIZE); | ||
Zeile 50: | Zeile 50: | ||
void fall() { | void fall() { | ||
- | y = y + speed; | + | y = y + speed; //y-Koordinate in jedem Durchlauf um die Konstante speed erhöhen -> konstante Bewegung |
if (y>=400) { | if (y>=400) { | ||
- | // falls die untere Seite erreicht wurde, "werfe" den Ball neu: | + | //falls die untere Seite erreicht wurde, "werfe" den Ball neu: |
restart(); | restart(); | ||
} | } | ||
} | } | ||
- | // "Wirft" den Ball wieder | + | //"Wirft" den Ball wieder: |
void restart() { | void restart() { | ||
- | // eine kleine Pause einbauen, bevor der Ball wieder auf der Zeichenflaeche erscheint: | + | y = -200; //eine kleine Pause einbauen, bevor der Ball wieder auf der Zeichenfläche erscheint |
- | y = -200; | + | x = random(xMax); //neue x-Koordinate zuweisen |
- | x = random(xMax); | + | speed = random(speedMax); //neue Geschwindigkeit zuweisen |
- | speed = random(speedMax); | + | |
} | } | ||
- | // Loescht den Ball und "wirft" ihn neu, falls am Ball geklickt wurde | + | //Löscht den Ball und "wirft" ihn neu, falls Ball angeklickt wurde |
void clicked() { | void clicked() { | ||
- | if (sqrt(sq(mouseX - x) + sq(mouseY - y)) < SIZE/2) { | + | if (sqrt(sq(mouseX - x) + sq(mouseY - y)) < SIZE/2) { //überprüfen ob Länge des Verbindungsvektors zwischen Mauszeiger und Kugelmittelpunkt kleiner als der Radius der Kugel ist(Vektorgeometrie) |
restart(); | restart(); | ||
} | } | ||
Zeile 75: | Zeile 74: | ||
==Hauptprogramm falling_balls== | ==Hauptprogramm falling_balls== | ||
<code java> | <code java> | ||
- | Ball ball1 = new Ball(600, 3);// erzeuge 5 "globale" Baelle mit random-Position und -geschwindigkeit | + | Ball ball1 = new Ball(600, 3);//erzeuge 5 "globale" Bälle mit random-Position und -geschwindigkeit |
Ball ball2 = new Ball(600, 3); | Ball ball2 = new Ball(600, 3); | ||
Ball ball3 = new Ball(600, 3); | Ball ball3 = new Ball(600, 3); | ||
Zeile 86: | Zeile 85: | ||
void draw() { | void draw() { | ||
- | clear(); | + | clear(); //Löschen des Grafikfensters bei jedem Durchgang um eine Bewegung der Bälle zu erzeugen |
- | ball1.draw(); | + | ball1.draw(); //Zeichnen des Balls |
ball2.draw(); | ball2.draw(); | ||
ball3.draw(); | ball3.draw(); | ||
Zeile 99: | Zeile 98: | ||
} | } | ||
- | // Wird beim Klicken aufgerufen: | + | //Wird beim Klicken aufgerufen: |
- | void mouseClicked() { | + | void mouseClicked() { //wird aufgerufen nachdem die linke Maustaste gedrückt und wieder losgelassen wurde |
- | ball1.clicked(); | + | ball1.clicked(); //Aufrufen der clicked-Funktion der Objekte |
ball2.clicked(); | ball2.clicked(); | ||
ball3.clicked(); | ball3.clicked(); | ||
Zeile 114: | Zeile 113: | ||
<code java> | <code java> | ||
class Quadrat { | class Quadrat { | ||
- | float size; // Größe | + | float size; //Größe |
- | float x; // aktuelle x-Koordinate | + | float x; //aktuelle x-Koordinate |
- | float y; // aktuelle y-Koordinate | + | float y; //aktuelle y-Koordinate |
Quadrat (float x, float y) { | Quadrat (float x, float y) { | ||
Zeile 136: | Zeile 135: | ||
} | } | ||
- | void draw() { | + | void draw() { //draw() ist zwar leer muss aber stehen bleiben, da das Programm sonst nach einmaligem Durchführen der Setup-Funktion nicht weiter laufen würde |
} | } | ||
- | void mouseClicked() { | + | void mouseClicked() { //wird aufgerufen nachdem die linke Maustaste gedrückt und wieder losgelassen wurde |
Quadrat quadrat = new Quadrat(mouseX, mouseY); //neues Objekt der Klasse Quadrat erstellen | Quadrat quadrat = new Quadrat(mouseX, mouseY); //neues Objekt der Klasse Quadrat erstellen | ||
quadrat.draw(); //auf die Funktion draw des Objektes zugreifen | quadrat.draw(); //auf die Funktion draw des Objektes zugreifen | ||
} | } | ||
</code> | </code> |