Game-Apps für Smartphones und Tablets

Bern University oh Teacher Education  
HomeOnline-Editor startenDruckenAndroid-TurtlegrafikJava-Online

Aufgabe 4: Bubbles-Game


Mit Fling-Events (Finger-Wischbewegungen) sollen die orangen Bubbles mit dem grünen Ball getroffen und entfernt werden. Die Fingerbewegung für den Abschuss des grünen Balls muss innerhalb des grünen Bogens enden. Getroffene Bubbles sowie die Bälle, die über das Fensterrand laufen, werden entfernt. Das Spiel kann erweitert werden, indem man den Ball an der senkrechten Wänden reflektieren lässt.

Ein ähnliches Beispiel findet man unter Fling-Events.

 

Für die Berechnung der beschleunigten Bewegung werden die physikalischen Formeln verwendet. Dabei rechnet man mit Userkoordinaten (Positionen in Metern, Geschwindigkeiten in m/s). Für die Umrechnung zwischen der User- und Pixel-Koordinaen verwendet man die Methoden toPixelX(), toPixelY(), toUserX(), toUserY() aus der Klasse GGPanel.

 

 

In der Vorlage Bubbles1.java ist die Ballbewegung bereits implementiert.

Bubbles1.java im Online Editor bearbeiten


Schritt 1:
Testen Sie die Ballbewegung, die bereits mit den Fling-Events implementiert ist.
Erzeugen Sie 25 Bubbles, die über die ganze Breite des Bildschirmes verteilt sind.

Schritt 2:
Zeichnen Sie die Abschussrampe, welcher die Fingerbewegung einschränken soll. Dazu kann die Methode
p.arc(2, 0, 180, false) aus der Klasse GGPanel verwendet werden, wobei 2 der Radius, 0 der Startwinkel, 180 der Winkelbereich und false nicht gefüllten Kreis bedeuten.

Damit der Endpunkt der Bewegung innerhalb des Halbkreises liegt, muss für seine Koordinaten gelten:

  Math.sqrt(x * x + y * y < 2) oder auch x * x + y * y < 4


Schritt 3:
Zählen Sie die Gesamtzahl der Bälle und die Anzahl der Treffer und schreiben Sie das Ergebnis in der Statusbar aus.

Schritt 4:
Erweitern Sie das Spiel, indem Sie mehrere Reihen Bubbles erzeugen oder die Bälle an den senkrechten Wänden reflektieren lassen.

 

Zusatzaufgabe:

Ändern Sie die Aufgabe so, dass nicht 25 Bubbles, sonder ein Ballon an der Position (30, 30) erzeugt wird. Spritebild: "balloon".

Der Ballon bewegt sich hin und her, d.h. wenn er am Rand ankommt, muss er 180° drehen.

Der Rest der Aufgabe bleibt gleich. Der Ballon muss mit dem grünen Ball getroffen werden