Feb 152013
 

In dieser Lektion werden wir unseren Code ein wenig aufräumen und über Kollisionen reden, woran wir danach auch einige Lektionen arbeiten werden. Es wird eine recht kurze Lektion, um das Basiswissen für die Kollisionen vorzubereiten.

Nun werden wir ein wenig aufräumen. Falls ihr das überspringen wollt, sind am Ende der Lektion die Robot, StartingClass und Tiles Klasse nochmal aufgeführt.

Säubern der Robot Klasse

Wir müssen einige Änderungen am Code vornehmen, um später problemlos die Kollisionserkennung zu implementieren.

1. Entfernt alles aus dem Code, was Rot markiert wurde.
2. Ändert alles was Blau eingefärbt wurde.

Nun haben wir einige Fehler erzeugt und unser Roboter ist momentan nicht in der Lage, auf dem Boden zu laufen. Wir werden das aber in den nächsten Lektionen reparieren.

Als Nächstes ändern wir das Schießen ein wenig ab. Der Spieler sollte für jeden Schuss einmal den Knopf drücken, anstatt einfach nur den Knopf gedrückt zu halten.

1. Dafür erstellen wir eine Variable am Anfang der Klasse, ergänzt euren Code mit dem Rot eingefärbten.

2. Wir wollen, dass diese neue Variable auch von anderen Klassen verwendet werden kann, also fügen wir für readyToFire neue Getters und Setters ein. Entweder lasst ihr es Eclipse automatisch hinzufügen oder ihr macht es manuell:

3. Nun werden wir in der shoot()-Methode eine if-Schleife einfügen:

4. Nun müssen wir in der StartingClass Klasse etwas ändern. Dazu navigiert ihr zu der keyPressed()-Methode und ergänzt unter KeyEvent.VK_CONTROL Folgendes:

5. Als Letztes müssen wir noch unter der keyReleased()-Methode Folgendes ergänzen:

Damit sollte das Dauerfeuer ausgestellt sein.

Säubern der StartingClass Klasse

1. Als Erstes machen wir aus private Robot robot; ein static, also static Robot robot;

2. Wir wollen noch eine Getter-Methode für unseren Roboter am Ende der StartingClass:

3. Zuletzt nehmen wir noch eine kleine Änderung an der start()-Methode vor. Dazu nehmt ihr dort robot = new Robot(); und platziert es direkt unterhalb von bg2 = new Background(2160, 0);

Säubern der Tile Klasse

Danach öffnen wir die Tile Klasse und nehmen hier noch zwei kleinere Änderungen vor.

1. Geht in die update()-Methode und ändert diese wie folgt ab.

Da wir keine verschiedenen Layer im Hintergrund haben wollen, haben wir nun überflüssigen Code entfernt.

2. Über der bg Variable müssen wir noch folgenden Code ergänzen:

private Robot robot = StartingClass.getRobot();

Nun sollten wir alle den folgenden Stand haben:

ROBOT KLASSE

STARTINGCLASS KLASSE

TILE KLASSE

In der nächsten Lektion werden wir über die Kollisionserkennung unseres Programms reden.

Falls ihr Fragen habt, immer raus damit, ich helfe euch sehr gerne. Hinterlasst bitte einfach einen Kommentar.

Teilt diese Seite mit euren Freunden und besucht uns mal auf Facebook und auf Google+, das würde dieser Seite wirklich weiterhelfen, danke sehr. Auch ein Klick auf die Werbung hilft dabei, diese Seite am Laufen zu halten.

Source Code

Für diejenigen unter euch, die hier einsteigen möchten, ohne den ganzen Code abtippen zu müssen, habe ich das Projekt exportiert. Mit der Importfunktion könnt ihr das Projekt bequem bei euch einfügen. Unter der Kategorie Eclipse und Java > Import und Export habe ich erklärt, was dafür zu tun ist.

Kapitel 3 Lektion 3

Quelle: Original Anleitung auf englisch von Kilobolt Studios

Lektion 2 – Level erstellen Teil 2 Lektion 4 – Kollisionserkennung Grundlagen