Am rechten Drittel des Spielfensters können mit einer Wischbewegung Schwerts geschleudert werden, wobei die Bewegungsrichtung mit der Bewegung des Fingers übereinstimmt. Je schneller man den Finger bewegt, um so schneller bewegt sich der Schwert. Ziel des Spiels ist es, möglichst viele Früchte "weg zu slicen", ehe sie am unteren Rand des Spielfensters ankommen. |
![]() |
|
Um den Programmcode zu verstehen, empfiehlt es sich, die Applikation in folgenden Schritten zu entwickeln:
Schritt 1: Früchte erzeugen und entlang einer Wurfparabel bewegen
Da sich alle Fruit-Actors gleich verhalten, ist es sinnvoll, die Eigenschaften dieser Actors in einer abstrakten Klasse Fruit.java festzulegen und sämtliche Fruit-Actors von dieser Klasse abzuleiten. Die Koordinaten x, y der sich bewegenden Früchte werden in der Methode act() der Klasse Fruit physikalisch berechnet (waagrechter Wurf):
|
![]() |
SliceIt_1 im Online-Editor bearbeiten
Schritt 2: Schwert mit Fling-Event erzeugen und in Bewegung setzen
Wir implementieren einen GGFlingListener mit der Callbackmethode flingEvent(Point start, Point end, GGVector velocity). Bei jeder Wischbewegung des Fingers wird die Start- und Endposition der Bewegung und die Geschwindigkeit, mit der man den Finger bewegt, erfasst. Der Schwert wird danach in dieser Richtung geschleudert und bewegt sich auf einer Wurfparabel. |
SliceIt_2 im Online-Editor bearbeiten
Schritt 3: Kollisionen und Spielauswertung
Da wir mit Pixelkoordinaten arbeiten, müssen wir eine präzise Kollisionserkennung verwenden. In der Klasse Fruit wir eine Methode collide () implementiert, die Kollisionen der Fruit-Actors und des Schwerts registriert. Die getroffene Früchte werden durch andere Sprites ersetzt. Der Kollisions-Actor Schwert wird für alle Früchte in der Callback-Methode flingEvent() erzeugt. |