When I used to store my map as a 2D Array I could simply check the players position against the position in the 2D array (x, y) now that I read from a text file I’m not sure how to do so. Below is my code.
package game;
import java.awt.Graphics;
import java.awt.Image;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Map {
Image key;
Image wall;
public Map() {
try {
wall = ImageIO.read(new File("src/img/wall.png"));
key = ImageIO.read(new File("src/img/key.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean isBlockedWall(int bx, int by) {
for (int x = 0; x < 37; x++) {
for (int y = 0; y < 15; y++) {
}
}
//return map[y][x] == 1;
}
public boolean getGoal(int x, int y) {
return map[y][x] == 2;
}
public void draw(Graphics g, Player player) {
int width = 32;
int height = 32;
//for (int x = 0; x < 37; x++) {
//for (int y = 0; y < 15; y++) {
//switch(map[y][x]) {
//case 1:
//g.drawImage(wall, (x - player.x) * width, (y - player.y) * height, null);
//break;
//case 2:
//g.drawImage(key, (x - player.x) * width, (y - player.y) * height, null);
//break;
//}
//}
// }
try {
BufferedReader in = new BufferedReader(new FileReader(new File("src/levels/1.txt")));
String read = in.readLine();
char letter = 0;
for (int x = 0; x < 37; x++) {
for (int y = 0; y < 15; y++) {
if (read.charAt(y) == '1') {
if (read.charAt(x) == '1') {
g.drawImage(wall, (x - player.x) * width, (y - player.y) * height, null);
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
There are obvious errors in isBlockedWall, so I’m wondering how to rectify it.
Shannon.