8.581
Bearbeitungen
Jneug (Diskussion | Beiträge) |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 29: | Zeile 29: | ||
{{Aufgabe:Start|Icon=Processing_icon.png}} | {{Aufgabe:Start|Icon=Processing_icon.png}} | ||
Erstelle zwei Ballons und einige Spitzen und teste dein Programm. | Erstelle zwei Ballons und einige Spitzen und teste dein Programm. (Rufe die <code>draw()</code> und <code>update()</code> Methoden der Objekte innerhalb der <code>draw()</code> Methode des Hauptprogramms auf.) | ||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
Zeile 95: | Zeile 95: | ||
Baue die Spitzen in dein Projekt ein und ergänze eine weitere Zählschleife in der <code>draw()</code> Methode des Hauptprogramms, die wiederum die <code>draw()</code> Methode jeder Spitze im Array aufruft. | Baue die Spitzen in dein Projekt ein und ergänze eine weitere Zählschleife in der <code>draw()</code> Methode des Hauptprogramms, die wiederum die <code>draw()</code> Methode jeder Spitze im Array aufruft. | ||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
{{Aufgabe:Start}} | |||
Ergänze ein Ballon-Array, das zehn <code>Ballon</code>-Objekte speichert. Erstelle die Ballon-Objekte und zeichne die Ballons in der <code>draw()</code> Methode. Ergänze auch einen Aufruf der <code>update()</code> Methode, damit die Ballons nach oben fliegen. | |||
{{Aufgabe:End}} | |||
== Ballons gegen Spitzen == | |||
Sobald die Ballons am oberen Bildschirmrand ankommen (und die Spitzen berühren), müssen sie natürlich platzen. Sobald ein Ballon geplatzt ist, kann ein neuer Ballon am unteren Bildrand erscheinen. | |||
{{Aufgabe:Start}} | |||
Prüfe nach jedem <code>update()</code>, ob der Ballon am oberen Rand angekommen ist. Falls ja, erstelle einen neuen <code>Ballon</code> im entsprechenden Array-Index. | |||
(Du kannst auch das Platzen mit einem entsprechenden Effekt versehen, wenn du möchtest.) | |||
{{Aufgabe:End}} | |||
== Eine Zwischenlösung == | |||
{{Lösung:Start}} | |||
Ballon | |||
<syntaxhighlight lang="Java" line="1"> | |||
class Ballon { | |||
private float x, y, speed, size; | |||
private color clr; | |||
public Ballon() { | |||
x = random(10, width-10); | |||
y = height-10; | |||
speed = random(20, 40)/10; | |||
size = random(20, 30); | |||
clr = color((int) random(50, 210), (int) random(50, 210), (int) random(50, 210)); | |||
} | |||
public void draw() { | |||
noStroke(); | |||
fill(clr); | |||
ellipse(x, y, size*.7, size); | |||
} | |||
public void update() { | |||
y -= speed; | |||
} | |||
public float getY() { | |||
return y; | |||
} | |||
} | |||
</syntaxhighlight> | |||
Spitze | |||
<syntaxhighlight lang="Java" line="1"> | |||
class Spitze { | |||
private float x, size; | |||
public Spitze(int pX) { | |||
x = pX; | |||
size = random(10, 50); | |||
} | |||
public void draw() { | |||
noStroke(); | |||
fill(33,33,33); | |||
triangle(x, 0, x+10, 0, x+5, size); | |||
} | |||
} | |||
</syntaxhighlight> | |||
Hauptprogramm | |||
<syntaxhighlight lang="Java" line="1"> | |||
Ballon[] ballons = new Ballon[10]; | |||
Spitze[] spitzen = new Spitze[60]; | |||
void setup() { | |||
size(600, 600); | |||
// Spitzen erstellen | |||
for( int i = 0; i < spitzen.length; i++ ) { | |||
spitzen[i] = new Spitze(i*10); | |||
} | |||
// Ballons erstellen | |||
for( int i = 0; i < ballons.length; i++ ) { | |||
ballons[i] = new Ballon(); | |||
} | |||
} | |||
void draw() { | |||
background(34, 28, 196); | |||
// Spitzen zeichnen | |||
for( int i = 0; i < spitzen.length; i++ ) { | |||
spitzen[i].draw(); | |||
} | |||
// Ballons zeichnen und aktualisieren | |||
for( int i = 0; i < ballons.length; i++ ) { | |||
ballons[i].draw(); | |||
ballons[i].update(); | |||
if( ballons[i].getY() < 20 ) { | |||
ballons[i] = new Ballon(); | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
{{Lösung:End}} |
Bearbeitungen