背景
我正在为我的 java 类做一个游戏项目,我们在游戏区域使用网格系统。 50 宽 x 25 高。这些方 block 的大小根据您的显示器尺寸动态调整,并且涉及一些数学。我从下面的示例中删除了它,以便更容易查看。
我目前决定做的是将网格方 block 存储在一个漂亮且简单的二维数组中,以便我们可以根据需要访问和更新游戏区域。这是代码:
// Updates when told to, saves new values
public static void GridList() {
// Record which grid squares are open (0) or blocked (1)
// X = Row and Y = Column
for (int x = 0; x < 50; x++ ) {
for ( int y = 0; y < 25; y++ ) {
gridList[x][y] = 0;
}
}
}
我们的问题
现在,当我继续保存代表这些网格方 block 中间的订单对 (x,y) 时,麻烦就开始了。例如,根据我们为计算出显示器尺寸所做的所有数学计算,我们制作了一个 50 宽 x 25 高的网格,现在需要保存这些正方形中间的 (x,y) 坐标。这样我们的人工智能就知道将敌人移动到哪里;只要打开就一点一点。
这是我到目前为止将 X 坐标和 Y 坐标保存在自己的数组中的内容:
public static void NodeList() {
for (int x = 0; x < 50; x++ ) {
for ( int y = 0; y < 25; y++ ) {
nodeListX[x][y] = *Removed all the math.*;
nodeListY[x][y] = *Removed all the math.*;
}
}
}
我们的目标
我真正想做的是为每个网格方 block 保存一个数组,如下所示:
public static void NodeList() {
for (int x = 0; x < 50; x++ ) {
for ( int y = 0; y < 25; y++ ) {
nodeList[x][y] = *array{x,y}*;
}
}
}
这在 Java 中可能吗?我无法弄清楚这一点。我看到了有关列表的内容,但我们还没有涉及到,所以我很茫然。
最佳答案
Java 确实没有办法存储一对数字。但是你可以创建一个像这样的坐标类:
`public class Coordinate
int x;
int y;
public Coordinate(x,y)
{
this.x=x;
this.y=y;
}
public int getX()
{
return x;
}
public int gety()
{
return y;
}
`
然后你可以创建一个坐标数组。
关于Java 2D 数组 - 如何将数组分配为值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28922633/