Добавление областей вместе ненадежно?
Я делаю 2D-игру и загружаю препятствия из файла и графики.
Используя этот код, он загружает каждый кусок из файла. Когда я загружаю файл, я беру все новые объекты области и складываю их вместе, чтобы мне не пришлось их потом перебирать. Иногда это работает, а иногда нет, я не знаю почему.
Как вы можете видеть на этих двух картинках, черный цвет является препятствием. Было бы хорошо, если бы он просто пропустил один или два, как на этой картинке. Но иногда этого не хватало, чтобы игрок мог ходить. Я уверен, что это объединение областей, которое пропускается, потому что, если бы оно загружалось из файла неправильно, некоторые текстуры могли бы иногда отсутствовать, но это никогда не происходит.
public static void loadMap() {
areas.clear();
areas.put(0, new Area(new Rectangle(0, 0, 0, 0)));
InputStream in = RunGame.class.getClassLoader().getResourceAsStream(
"chunks/" + chunkX + " " + chunkY + " " + chunkZ);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
try {
int i = 0;
String nextLine = reader.readLine();
while (nextLine != null) {
// System.out.println(nextLine);
String[] split = nextLine.split(", ");
int[] split2 = new int[split.length];
for (int i1 = 0; i1 < split.length; i1++) {
split2[i1] = Integer.parseInt(split[i1]);
if(tiles.get(split2[i1]).isWalkable() == false){
areas.get(0).add(tiles.get(split2[i1]).getNewArea((int) mapX + i1 * textureSize,
(int) mapY + i * textureSize));
}
}
mapArray[i] = split2;
i++;
nextLine = reader.readLine();
}
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
currentMapW = mapArray[0].length;
currentMapH = i;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Я полностью открыт для того, чтобы сделать метод loadMap() медленнее, если это будет более точный, в худшем случае, который я должен добавить, например, период перехода, равный полсекунде или что-то в этом роде.