Проблемы с загрузкой тайловой карты

В платформере, который я делаю, мне нужно загружать плитки, чтобы иметь возможность создавать уровни, но в приведенном ниже коде у меня, похоже, проблемы. Он говорит, что у меня есть ошибка в этой части:

String[] skips = skip.split(" ");

но мне кажется, что все в порядке, и это всегда работало раньше. Может ли кто-нибудь дать мне некоторое представление о том, почему это не работает?

Подземелье.java

package ScreenContents;

import java.awt.Color;
import java.awt.Graphics;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class Dungeon {


private static int width;
private static int height;
private static final int tileSize = 32;
private int[][] map;

public void readMap(String location){
    URL url = getClass().getResource(location);
    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));

        width = Integer.parseInt(reader.readLine());
        height = Integer.parseInt(reader.readLine());
        map = new int[height][width];

        for (int y = 0; y < height; y++){
            String skip = reader.readLine();
            String[] skips = skip.split(" ");
            for (int x = 0; x < width; x++){
                map[y][x] = Integer.parseInt(skips[x]);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public void renderMap(Graphics g){
    for (int y = 0; y < height; y++){
        for (int x = 0; x < width; x++){
            int newMapPos = map[y][x];

            if (newMapPos == 0){
                g.setColor(Color.black);
            }

            if  (newMapPos == 1){
                g.setColor(Color.white);
            }

            g.fillRect(x * tileSize, y * tileSize, tileSize, tileSize);

        }
    }
}

}

person user2318396    schedule 12.10.2013    source источник


Ответы (1)


Строка: String[] skips = skip.split(" "); имеет пропуск, равный нулю.

Это потому, что reader.readLine(); вернул null.

Просматривая документацию «Строка, содержащая содержимое строки, не включая символы завершения строки, или нуль, если достигнут конец потока».

Вы в основном читаете слишком много строк из своего файла, что означает, что высота в вашем файле не соответствует количеству строк, которые на самом деле находятся в файле.

person TofuBeer    schedule 12.10.2013
comment
Благодарю вас! На самом деле эту ошибку было очень легко исправить, и я не совсем понимаю, как я ее пропустил!! - person user2318396; 12.10.2013