具有Rectangle()网格的2d数组

时间:2015-04-19 18:50:50

标签: java arrays awt

我正在尝试制作一个网格,使用2d数组列表,我想用矩形制作它所以我可以使用.intersects,我也需要它是95 x 95和95分开,这就是我到目前为止,但由于错误而无法正常工作。

    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;
            }   
        }
     }

检查它们是否相交。但我一直在收到错误:

  

`线程中的异常&#34; AWT-EventQueue-0&#34;显示java.lang.NullPointerException     在bombermangame.Game.walls(Game.java:165)at   bombermangame.Game。(Game.java:62)at   bombermangame.Menu.actionPerformed(Menu.java:98)at   javax.swing.AbstractButton.fireActionPerformed(未知来源

1 个答案:

答案 0 :(得分:2)

你从未初次化墙。在你的for循环for (int i = 0; i < 7; i++)之前,添加:

walls = new Rectangle[7][7];

我把7和7放在那里,因为这就是它的尺寸。