2020-02-17 16:29:50 +01:00
import java.io.BufferedReader ;
import java.io.FileReader ;
// Diese Klasse ist zust<73> 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
2020-04-30 21:18:21 +02:00
2020-02-17 16:29:50 +01:00
Player player ;
Ghost ghosts [ ] ;
String line ; // String in dem eingelsene Zeilen der Datei gespeichert werden
public Map ( Player player , Ghost ghosts [ ] ) { // Erstellen des Konstruktors
2020-04-30 21:18:21 +02:00
2020-02-17 16:29:50 +01:00
this . ghosts = ghosts ;
this . player = player ;
}
2020-04-30 21:18:21 +02:00
public void mapping ( ) {
2020-02-17 16:29:50 +01:00
try {
reader = new BufferedReader ( new FileReader ( "assets/map.txt" ) ) ; // Einlesen der .txt Datei
2020-04-30 21:18:21 +02:00
2020-02-17 16:29:50 +01:00
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 ) ;
2020-04-30 21:18:21 +02:00
}
2020-02-17 16:29:50 +01:00
} catch ( Exception e ) {
2020-04-30 21:18:21 +02:00
2020-02-17 16:29:50 +01:00
}
}
}
} catch ( Exception e ) { // Falls etwas mit dem Einlesen der Datei schiefl<66> 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 ) ;
}
}
}