67 lines
2.3 KiB
Java
67 lines
2.3 KiB
Java
import java.io.BufferedReader;
|
|
import java.io.FileReader;
|
|
|
|
// Diese Klasse ist zuständig für das Laden der Karte
|
|
// In der Textdatei map.txt enthalten im "assets" - Ordner kann man anhand von '#' Positionen von Bricks festlegen. Dort wo sich kein '#' befindet, ist also eine Lücke.
|
|
|
|
public class Map {
|
|
|
|
public static Brick bricks[][] = new Brick[35][35]; // Zweidimensionales Array für alle Bricks
|
|
// Zweidimensionale Arrays siehe
|
|
// https://de.wikipedia.org/wiki/Feld_(Datentyp)#Mehrdimensional_/_in-sich-mehrdimensional
|
|
|
|
BufferedReader reader; // reader zum Einlesen der Text Datei
|
|
|
|
Player player;
|
|
Ghost ghosts[];
|
|
|
|
String line; // String in dem eingelsene Zeilen der Datei gespeichert werden
|
|
|
|
public Map(Player player, Ghost ghosts[]) { // Erstellen des Konstruktors
|
|
|
|
this.ghosts = ghosts;
|
|
this.player = player;
|
|
|
|
}
|
|
|
|
public void mapping() {
|
|
try {
|
|
|
|
reader = new BufferedReader(new FileReader("assets/map.txt")); // Einlesen der .txt Datei
|
|
|
|
for (int i = 0; i < 35; i++) { // für die ersten 35 Zeilen der Datei:
|
|
String line = reader.readLine(); // Einlesen der jeweiligen Zeile
|
|
for (int j = 0; j < 35; j++) { // für die ersten 35 Zeichen der jeweiligen Zeile
|
|
try {
|
|
if (line.charAt(j) == '#') { // Erkennen ob sich dort ein '#' befindet
|
|
bricks[i][j] = new Brick(10 + 20 * j, 10 + 20 * i); // wenn ja, soll an der Stelle ein neuer
|
|
// Brick erstellt werden
|
|
} else if (line.charAt(j) == 'P') {
|
|
player.setPos('x', 10 + 20 * j);
|
|
player.setPos('y', 10 + 20 * i);
|
|
} else if (line.charAt(j) == '0') {
|
|
ghosts[0].setPos('x', 10 + 20 * j);
|
|
ghosts[0].setPos('y', 10 + 20 * i);
|
|
} else if (line.charAt(j) == '1') {
|
|
ghosts[1].setPos('x', 10 + 20 * j);
|
|
ghosts[1].setPos('y', 10 + 20 * i);
|
|
} else if (line.charAt(j) == '2') {
|
|
ghosts[2].setPos('x', 10 + 20 * j);
|
|
ghosts[2].setPos('y', 10 + 20 * i);
|
|
} else if (line.charAt(j) == '3') {
|
|
ghosts[3].setPos('x', 10 + 20 * j);
|
|
ghosts[3].setPos('y', 10 + 20 * i);
|
|
}
|
|
} catch (Exception e) {
|
|
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception e) { // Falls etwas mit dem Einlesen der Datei schiefläuft:
|
|
System.out.println(
|
|
"There seems to be an error with the file of the map. Pls use hashes to indicate positions of Walls. ERROR: "
|
|
+ e);
|
|
}
|
|
}
|
|
}
|