我试图获取游戏关卡单元格的位置并将它们映射到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数组的样子:
我仍然在研究碰撞代码......我需要这个才能解决这个问题。
非常感谢你们,你们非常乐于助人!我仍然是初学者,但我正在全天候工作,以使自己成为一名更好的程序员。
答案 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);
}
}
它将是锯齿状的(数组数组。)