@@ -675,7 +675,7 @@ Schlussendlich entsteht ein solches Labyrinth:
...
@@ -675,7 +675,7 @@ Schlussendlich entsteht ein solches Labyrinth:
<hr>
<hr>
# MazeConverter <a name="mazeconverter">
# MazeConverter <a name="mazeconverter">
Auch wenn diese Klasse nur sehr kurz ist, hat sie es in sich. Statt eine MiniMap hinzuzufügen, haben wir uns dazu entscheiden ein MazeConverter zu erstellen, welcher die Spielkarte zu einem Bild konvertiert. Daher kann ein Spieler nach beenden des Spieles, egal ob er gewonnen oder verloren hat, sich die Karte als .png Datei runterladen und ansehen. Die MiniMap haben wir gelassen, weil diese das Spiel viel zu leicht machen würde, da der Spieler weiß, wo er hinzugehen muss. Doch wie funktioniert diese Klasse nun?
Auch wenn diese Klasse nur sehr kurz ist, hat sie es in sich. Statt eine MiniMap hinzuzufügen, haben wir uns dazu entscheiden ein MazeConverter zu erstellen, welcher die Spielkarte zu einem Bild konvertiert. Daher kann ein Spieler nach Beenden des Spieles, egal ob er gewonnen oder verloren hat, sich die Karte als .png Datei runterladen und ansehen. Die MiniMap haben wir weggelassen, weil diese das Spiel viel zu leicht machen würde, da der Spieler weiß, wo er entlanggehen muss. Doch wie funktioniert diese Klasse nun?
```java
```java
...
@@ -722,7 +722,138 @@ Dieser Code bildet das Herzstück der Klasse. Nachdem der Konstruktor aufgerufen
...
@@ -722,7 +722,138 @@ Dieser Code bildet das Herzstück der Klasse. Nachdem der Konstruktor aufgerufen
# Weapon <a name="weapon">
# Weapon <a name="weapon">
Diese Klasse ist sehr kompliziert und leicht sogleich, wenn man alles Oben erklärte verstanden hat. Deshalb werden hier nur Tipps übergeben. Anfangen tut alles in einen normalen Konstruktor, der dieselben Werte wie die Camera zugespielt bekommt, denn wer hätte es errate, die Klasse funktioniert genau gleich. Mit einer Ausnahme: Der Konstruktor bekommt auch einen Integer namens Bullet überspielt, der später überprüft, ob der Spieler überhaupt noch Kugeln besitzt. Darauf wird die Funktion shoot() aufgerufen, wenn die Leertaste gedrückt wurde. Diese Checkt allerdings weiterhin, ob der Spieler mehr als 0 Kugeln besitzt. Dann fungiert die Funktion fast genau gleich wie die Screen-Klasse mit der Ausnahme, dass die Klasse lediglich den Sichtvektor benötigt und folglich nur einen Vektor auswürft, statt Vektoren in alle Richtungen. Dann wird wieder gecheckt, wann der Vektor und wo er auf eine Zahl größer als 1 trifft. Die 1 wurde so gewählt, weil der Spieler niemals dem Labyrinth entkommen soll, indem er sich durch die Grenz in den unendlichen Raum schießt. Deshalb bleiben die äußersten Wände auch immer in derselben Textur. Die Koordinate der Zahl wird übernommen und dann wird die Zahl gegen eine 0 ersetzt, sodass ein Loch entsteht. Darauf wird die Kugelanzahl reduziert und der Sound abgespielt.
Diese Klasse ist sehr kompliziert und leicht sogleich, wenn man alles Oben erklärte verstanden hat. Deshalb werden hier nur Tipps übergeben. Anfangen tut alles in einen normalen Konstruktor, der dieselben Werte wie die Camera zugespielt bekommt, denn wer hätte es errate, die Klasse funktioniert genau gleich. Mit einer Ausnahme: Der Konstruktor bekommt auch einen Integer namens Bullet überspielt, der später überprüft, ob der Spieler überhaupt noch Kugeln besitzt. Darauf wird die Funktion shoot() aufgerufen, wenn die Leertaste gedrückt wurde. Diese Checkt allerdings weiterhin, ob der Spieler mehr als 0 Kugeln besitzt. Dann fungiert die Funktion fast genau gleich wie die Screen-Klasse mit der Ausnahme, dass die Klasse lediglich den Sichtvektor benötigt und folglich nur einen Vektor auswürft, statt Vektoren in alle Richtungen. Dann wird wieder gecheckt, wann der Vektor und wo er auf eine Zahl größer als 1 trifft. Die 1 wurde so gewählt, weil der Spieler niemals dem Labyrinth entkommen soll, indem er sich durch die Grenz in den unendlichen Raum schießt. Deshalb bleiben die äußersten Wände auch immer in derselben Textur. Die Koordinate der Zahl wird übernommen und dann wird die Zahl gegen eine 0 ersetzt, sodass ein Loch entsteht. Darauf wird die Kugelanzahl reduziert und der Sound abgespielt.
Also kann man den Code des Screens kopieren und einzelne Segmente ausradieren. Zur Ermutigung wird der Code nicht hier angegeben, sodass man es alleine ausprobieren kann und bei Verständnislücken nachgucken kann.