这个2D数组初始化代码出了什么问题?

时间:2012-12-13 11:48:22

标签: c# multidimensional-array

我试图获取游戏关卡单元格的位置并将它们映射到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);

            }
        }

可在此处找到:How can I use a jagged array to record the x and y axes of these tiles? 以及对我正在尝试做的更好的描述。

因此,当我运行此代码时,我在tilePositions中得到一个空数组。嗯,x和y值都在那里,但值都是0.值应该是单元格的位置数据。

以下是tilesPosition数组的样子:

http://imgur.com/VYyxp

我仍然在研究碰撞代码......我需要这个才能解决这个问题。

非常感谢你们,你们非常乐于助人!我仍然是初学者,但我正在全天候工作,以使自己成为一名更好的程序员。

1 个答案:

答案 0 :(得分:0)

如果你做了

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

它将是锯齿状的(数组数组。)