final/src/MapReader.java

78 lines
3.7 KiB
Java
Raw Normal View History

2022-06-06 03:18:10 +01:00
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
2022-06-03 17:22:05 +01:00
import java.io.*;
2022-06-02 18:21:29 +01:00
import java.util.ArrayList;
2022-06-02 19:48:16 +01:00
import java.util.Scanner;
2022-06-02 18:21:29 +01:00
public class MapReader {
2022-06-03 18:08:59 +01:00
//Input game map
2022-06-03 18:50:13 +01:00
/*
1: Normal Grass
2022-06-05 22:33:24 +01:00
2: Left Grass:
3: Right Grass:
Grass Tiling:
qwe
asd
zxc
!: Slime
Grass:
2022-06-03 18:50:13 +01:00
*/
2022-06-06 03:18:10 +01:00
public static void inputMap(ArrayList<Tile> map, ArrayList<NonPlayer>enemy , String filePath) throws IOException, SpriteException, UnsupportedAudioFileException, LineUnavailableException {
enemy.clear();
map.clear();
2022-06-05 22:33:24 +01:00
String file = FileManager.readFile(LevelManager.filePath);
int x = -GamePanel.GAME_WIDTH/2 + Tile.length;
2022-06-03 17:22:05 +01:00
int y = 0;
for(int i=0; i<file.length(); i++){
if(file.charAt(i)=='\n'){
y+=Tile.length;
2022-06-05 22:33:24 +01:00
x= -GamePanel.GAME_WIDTH/2;
2022-06-03 17:22:05 +01:00
}
else if(file.charAt(i)=='1'){
2022-06-03 18:17:03 +01:00
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grass.png")));
2022-06-03 18:50:13 +01:00
} else if(file.charAt(i)=='2'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassLeft.png")));
} else if(file.charAt(i)=='3'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassRight.png")));
2022-06-05 22:33:24 +01:00
} else if(file.charAt(i)=='q'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassTopLeft.png")));
} else if(file.charAt(i)=='w'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassMid.png")));
} else if(file.charAt(i)=='e'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassTopRight.png")));
} else if(file.charAt(i)=='a'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassMiddleLeft.png")));
} else if(file.charAt(i)=='s'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassCenter.png")));
2022-06-06 16:24:46 +01:00
map.get(map.size()-1).collision = false;
2022-06-05 22:33:24 +01:00
} else if(file.charAt(i)=='d'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassMiddleRight.png")));
} else if(file.charAt(i)=='z'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassBottomLeft.png")));
} else if(file.charAt(i)=='x'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassBottomMiddle.png")));
} else if(file.charAt(i)=='c'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/grassBottomRight.png")));
} else if(file.charAt(i)=='r'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/cornerTopLeft.png")));
} else if(file.charAt(i)=='t'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/cornerTopRight.png")));
} else if(file.charAt(i)=='f'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/cornerBottomLeft.png")));
} else if(file.charAt(i)=='g'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/terrain/cornerBottomRight.png")));
2022-06-05 16:53:03 +01:00
} else if(file.charAt(i)=='b'){
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/boxes/box.png")));
map.get(map.size()-1).collision = false;
2022-06-06 03:18:10 +01:00
} else if(file.charAt(i)=='!'){
2022-06-07 18:12:48 +01:00
enemy.add(new NonPlayer(x, y, GamePanel.slimeSpriteArray, 50, 28, 100));
2022-06-06 03:18:10 +01:00
2022-06-06 16:24:46 +01:00
} else if(file.charAt(i)=='+') {
map.add(new SingleTile(x,y, GamePanel.getImage("img/tiles/boxes/finish.png")));
map.get(map.size()-1).isFinish = true;
2022-06-03 17:22:05 +01:00
}
x+=Tile.length;
}
2022-06-02 18:21:29 +01:00
}
}