Swing Copters Klon selbst programmieren – so geht’s [2]

    1

Wir zeigen Euch, wie Ihr Euren eigenen Swing Copters Klon programmieren könnt. Nach Teil 1 heute Teil 2 – die Bewegung.

Nachdem wir das letzte Mal bereits einen Protagonisten geschaffen haben, der nun auch angezeigt wird, soll er sich heute bewegen. Dieser Schritt ist relativ simpel.

Zuerst die Theorie, dann die Praxis. Unser kleines Flugobjekt soll sich genau in zwei Richtungen bewegen können – nämlich nach links und rechts. Der Einfachheit halber wird es sich aber nicht nach oben bewegen, sondern die Hindernisse, die wir später erstellen werden, sollen nach unten kommen. Die einfachste Art der Bewegung ist es, einfach die Koordinaten anzupassen. Um nachher die Geschwindigkeit schneller anpassen zu können, legen wir auch eine eigene Variable dafür an. Der Code im Flyer-Tab wird also um diese Zeile erweitert, die Ihr über die bereits vorhandene init() Funktion tippt:

int speed = 5;

Nun weiter zur Bewegung. Passt die Funktion move() so an, dass sie so aussieht:

void move()
{
xPos+=speed;
}

Außerdem fügt Ihr unten in die Funktion draw() im Haupt-Tab noch die folgende Zeile hinzu:

Protagonist.move();

Startet Ihr die Anwendung nun, wird sich das Flugobjekt automatisch nach rechts bewegen. Wollt Ihr es schneller oder langsamer machen, passt Ihr einfach den Wert speed an. Aber das war noch nicht alles – es gilt zu beachten, dass der Protagonist ja erstens auch nach links fliegen soll und zweitens nicht aus dem Bildschirm fliegen soll. Also fügt Ihr unter die Zeile mit der Geschwindigkeit (zurück im Tab Flyer) noch einen Wert ein:

Boolean moveRight = true;

Dieser zeigt an, dass sich das Flugobjekt nach rechts bewegt. Wenn der Wert true ist, soll es sich nach rechts bewegen, wenn er false ist, nach links. Also zurück in die move() Funktion und diese so anpassen:

void move()
{
if(moveRight)
{
xPos+=speed;
}
else
{
xPos-=speed;
}
}

Nun kann sich der Helikopter in beide Richtungen bewegen. Was jetzt noch fehlt, ist die Möglichkeit, die beiden Richtungen auch zu wechseln. Dazu geht Ihr zurück zum Haupt-Tab und fügt ganz unten noch diese Funktion  hinzu:

void mousePressed()
{
Protagonist.changeDirection();
}

Damit das auch passiert, begebt Ihr Euch wieder in den Flyer Tab und fügt dort diese Zeilen hinzu:

void changeDirection()
{
if(moveRight){moveRight=false;}
else{moveRight=true;}
}

Sobald Ihr also mit der Maus klickt, ermittelt das Programm, ob sich das Flugobjekt nach rechts bewegt. Wenn ja, ändert er das auf eine Bewegung nach links und umgekehrt. Jetzt bleibt nur noch ein Problem – der Bildschirmrand. Dieses Problem wird aber auch einfach gelöst. Vorerst machen wir das so, dass wir einfach die move() Funktion noch einmal abändern:

void move()
{
if(xPos>=0 && xPos+img.width <= width)
{
if(moveRight)
{
xPos+=speed;
}
else
{
xPos-=speed;
}
}
}

Swing Copter Klon Step2

Nun passiert folgendes: Vor jeder Bewegung fragt sich die App: Ist das Flugobjekt überhaupt rechts vom linken Rand und links vom rechten Rand? Wenn dies zutrifft, also es zwischen beiden Rändern ist, wird noch die Richtung überprüft, dann bewegt es sich. Sobald Ihr nun den Rand berührt, bleibt das Flugobjekt vorerst dort stecken. Das lassen wir erst mal so, denn später werden wir das Game Over einführen und dann können wir etwas sinnvolleres damit anfangen. Für heute bleibt es bei der Bewegung.

Das nächste Mal werden wir dann dafür sorgen, dass auch Hindernisse ins Spiel kommen. Alles was heute programmiert wurde, ladet Ihr hier herunter.

Und Teil 3 unserer kleinen Programmier-Reihe folgt schon in Kürze bei iTopnews!

Teile
in diesem Artikel

Anzeige

Deine Meinung ist wichtig

Die Kommentarfunktion von Disqus wird als Frame eingebunden. Wenn Sie eine Meinung/einen Kommentar abgeben wollen, verlassen Sie damit unsere Webseite/App und posten über Disqus.