这个二维数组初始化代码有什么问题?



我正在尝试获取游戏级别单元格的位置,并将它们映射到2D阵列。我想这样做,这样我就可以让每个地面细胞(而不是背景细胞)与我的玩家角色进行冷却。

以下是某人为我创建的当前代码:

int tileSize = 20;
int screenSizeInTiles = 30;
// initializing multidimensional array of points
var tilePositions = new System.Drawing.Point[screenSizeInTiles, screenSizeInTiles];
for (int x = 0; x < screenSizeInTiles; x++)
{
for (int y = 0; y < screenSizeInTiles; y++)
{
tilePositions[x, y] = new System.Drawing.Point(x * tileSize, y * tileSize);
}
}

可以在这里找到:我如何使用锯齿状阵列来记录这些瓦片的x和y轴?以及对我正在努力做的事情的更好描述。

所以,当我运行这段代码时,我在tilePositions中得到一个空数组。x和y的值是存在的,但是这些值都是0。这些值应该是单元格的位置数据。

下面是tilesPosition数组的样子:

https://i.stack.imgur.com/35SH7.jpg

不过,我仍在研究碰撞代码。。。我需要这个工作,然后我才能弄清楚那个部分。

非常感谢大家,你们帮了我很大的忙!我还是一个初学者,但我正在夜以继日地工作,让自己成为一个更好的程序员。

如果您进行

int tileSize = 20;
int screenSizeInTiles = 30;
// initializing jagged array of points
var tilePositions = new Point[screenSizeInTiles][screenSizeInTiles];
for (int x = 0; x < screenSizeInTiles; x++)
{
for (int y = 0; y < screenSizeInTiles; y++)
{
tilePositions[x][y] = new Point(x * tileSize, y * tileSize);
}
}

它将是锯齿状的(阵列的阵列。)

最新更新