Collision from text file

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.

Read the files content into the map[][] array when starting a map (I would suggest to add a loadMap(String location) method for this) and change your collision code back to the way it was.

Reading in a file on every draw() call is highly unwanted, since it limits your render speed to how fast your file can be read…