2015-04-19 2 views
1

Я пытаюсь создать сетку, используя список массивов 2d, я хочу сделать это с помощью Rectangles, поэтому я могу использовать с нимиинтерсетекс, мне также понадобится 95 x 95 и 95, это то, что у меня есть до сих пор, но оно не работает из-за ошибки.2d Array with Rectangle() grid

public static Rectangle[][] walls; 
    public static void walls() { 
    int wallsY = 0, wallsX =0; 
    for (int i = 0; i < 7; i++) { 
     for (int j = 0; j < 7; j++) { 
      //shapeList.add(new Rectangle(wallsX, wallsY, 95, 95)); 
      walls[i][j] = new Rectangle(wallsX,wallsY,95,95); 
      wallsY += 95; 
      wallsX += 95; 

     } 
    } 

тогда я использую:

for (int i = 0; i < walls.length; i++) { 
     for(int j =0; j < walls.length; j++){ 
      if (intersectsBox(playerRectangle(), walls[i][j])) { 
       isInsideWalls = true; 
      } 
     } 
    } 

, чтобы проверить, если они пересекаются. Но я получаю сообщение об ошибке, которое прямо здесь:

`Исключение в потоке "АВТ-EventQueue-0" java.lang.NullPointerException в bombermangame.Game.walls (Game.java:165) в bombermangame .Game. (Game.java:62) в bombermangame.Menu.actionPerformed (Menu.java:98) на javax.swing.AbstractButton.fireActionPerformed (Unknown Source

ответ

2

Вы никогда не инициализируется стены. до вашего для петли for (int i = 0; i < 7; i++), добавить:

walls = new Rectangle[7][7]; 

Я поставил 7 и 7 там, потому что это то, что кажется, размеры будут.

+0

Спасибо, я попытался переместить местоположение, когда его загрузили в игру на спину, и это сработало, мне также нужно было добавить это – joejoethemonkey