更有效的制作多个物体的方法

时间:2014-01-03 04:43:05

标签: java export lwjgl slick2d

我正在尝试使用Java制作记忆游戏。该游戏基本上将是网格中的一些正方形,目前为4x4仅用于测试目的。我已经创建了我的Square类,并编写了我希望他们在该类中执行的操作,然后在另一个类中创建了一个方形对象来处理"正常模式"游戏现在因为我有一个4x4的正方形网格,我需要制作16个不同的正方形(或者至少是我现在想的那个)。我还需要在相应的位置画出Squares。

我的问题:创建其中16个Square对象的最有效方法是什么,同时仍然能够单独操作它们? (类似于每个都有自己的名字; Square,Square1,Square2等)。

我也在使用Slick2D库。

3 个答案:

答案 0 :(得分:2)

如上所述,Square [] [] squareGrid = new Square [4] [4]是一个很好的方法; 然后你可以使用:

初始化所有16个
 for (int i = 0; i < squareGrid.length; i++)
        for(int j = 0; j < squareGrid[i].length; j++)
            squareGrid[i][j] = new Square();

现在每个方块都自动拥有自己唯一的(row,col)id。 例如,

squareGrid[1][2].callSomeFunctionInSquareClass();

可用于操纵第2行第3列的方块。 通过这种方式,您将避免扫描所有正方形以获取网格上特定单元格中的那个,从而使其更有效。

快乐的编码:)

答案 1 :(得分:1)

您可以尝试Square[][] grid = new Square[4][4]

答案 2 :(得分:1)

我会使用Square [] []数组,例如Square[][] squares = new Square[4][4],然后在两个嵌套循环中使用所有16​​个Square进行初始化:

for (int x = 0; x < squares.length) x++)
    for (int y = 0; y < squares[x].length; y++)
        squares[x][y] = new Square(x, y);