Projekt:2020/Processing Arrays: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 22: Zeile 22:


[[Datei:UML Ballon.png|center]]
[[Datei:UML Ballon.png|center]]
Die Klassen <code>Ballon</code> und <code>Spitze</code> sollen nach dem UML-Diagramm oben implementiert werden. <code>Spitze</code>n befinden sich am oberen Rand des Fensters und bekommen ihre x-Position im Konstruktor übergeben. Die Größe (<code>size</code>) wird [https://processing.org/reference/random_.html zufällig] bestimmt. Ein <code>Ballon</code> beginnt am [https://processing.org/reference/height.html unteren Rand des Fensters]. Alle anderen Attribute werden [https://processing.org/reference/random_.html zufällig] bestimmt (wähle sinnvolle Werte für die unteren und oberen Grenzen).
Die Klassen <code>Ballon</code> und <code>Spitze</code> sollen nach dem UML-Diagramm oben implementiert werden. <code>Spitze</code>n befinden sich am oberen Rand des Fensters und bekommen ihre x-Position im Konstruktor übergeben. Die Größe (<code>size</code>) wird [https://processing.org/reference/random_.html zufällig] bestimmt und legt die fest, wie lang die Spitze jeweils ist. Jede Spitze ist 10 Pixel breit.
 
Ein <code>Ballon</code> beginnt am [https://processing.org/reference/height.html unteren Rand des Fensters]. Alle anderen Attribute werden [https://processing.org/reference/random_.html zufällig] bestimmt (wähle sinnvolle Werte für die unteren und oberen Grenzen).


<code>draw()</code> zeichnet jeweils die <code>Spitze</code> bzw. den <code>Ballon</code> (benutze ein [https://processing.org/reference/triangle_.html Dreieck] bzw. eine [https://processing.org/reference/ellipse_.html Ellipse]). <code>update()</code> verändert abhängig von <code>speed</code> die y-Position des <code>Ballons</code>, so dass er langsam nach oben steigt.
<code>draw()</code> zeichnet jeweils die <code>Spitze</code> bzw. den <code>Ballon</code> (benutze ein [https://processing.org/reference/triangle_.html Dreieck] bzw. eine [https://processing.org/reference/ellipse_.html Ellipse]). <code>update()</code> verändert abhängig von <code>speed</code> die y-Position des <code>Ballons</code>, so dass er langsam nach oben steigt.
Zeile 29: Zeile 31:
Erstelle zwei Ballons und einige Spitzen und teste dein Programm.
Erstelle zwei Ballons und einige Spitzen und teste dein Programm.
{{Aufgabe:End}}
{{Aufgabe:End}}
== Eine Reihe Spitzen ==
Um den gesamten oberen Bildschirmrand mit Spitzen zu füllen, brauchen wir <math>600/10 = 60</math> <code>Spitze</code>n. Für jede Spitze eine Variable zu erstellen wäre ganz schön aufwändig. Zum Glück gibt es genau dafür ''Arrays''.
Ein Array ist eine Möglichkeit, mehrere Objekte oder Werte in einer einzigen Variable zu speichern. jedes Objekt kann dann in der Variablen mit einem ''Index'' angesprochen werden.
=== Ein Beispiel ===
Um zehn Zahlen in einem Zahlen-Array zu speichern, müssen wir das Array zunächst ''deklarieren'' und dann dann mit Werten füllen (''initialisieren''):
<syntaxhighlight lang="Java">
// Deklaration eines Zahlen-Arrays mit zehn Elementen
int[] zahlen = new int[10];
zahlen[0] = 102; // Erstes Element, Index 0
zahlen[1] = 56; // Zweites Element, Index 1
zahlen[2] = 34; // Drittes Element, Index 2
zahlen[3] = 2;
zahlen[4] = 202;
zahlen[5] = 43;
zahlen[6] = 1;
zahlen[7] = 89;
zahlen[8] = 0;
zahlen[9] = 21;
</syntaxhighlight>
Um dann auf ein Elemente zuzugreifen, oder einen neuen Wert zuzuweisen, benutzt du die passenden Indizes:
<syntaxhighlight lang="Java">
// Weise Index 0 die Summe von Index 2 und Index 6 zu
zahlen[0] = zahlen[2] + zahlen[6];
</syntaxhighlight>
{{Hinweis|Wie du siehst beginnen die Indizes eines Arrays bei <code>0</code> und nicht bei <code>1</code>!}}
=== Objektarrays ===
In einem Array können aber auch komplexe Datentypen - Objekte - gespeichert werden.
<syntaxhighlight lang="Java">
// Deklaration eines Spitzen-Arrays mit 60 Elementen
Spitze[] spitzen = new Spitze[60];
spitzen[0] = new Spitze();
</syntaxhighlight>
Nun kannst du mit den Indizes <code>0</code> bis <code>59</code> den einzelnen Elementen des Arrays neue <code>Spitzen</code> zuweisen.