2013-10-12 1 views
0

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

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

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

Dungeon.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); 

     } 
    } 
} 

} 

ответ

1

Линия: String[] skips = skip.split(" "); имеет пропустить множество обнулить.

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

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

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

+0

Спасибо! На самом деле это была очень простая ошибка, и я не совсем уверен, как я пропустил это! – user2318396