【发布时间】:2014-05-15 02:17:00
【问题描述】:
我正在尝试制作 2D RPG 游戏,并想使用 List> 来制作一个网格,用于存储不同类型的世界对象。唯一的问题是,我不知道如何从这个多维列表中取出东西。
下面的代码创建了一个多维列表并用“污垢”对象填充它(尽管 objects[i] 不起作用,这是我的问题)。
public List<List<Object>> objects;
this.mapWidth = 36;
this.mapHeight = 21;
this.objects = new List<List<Object>>();
for (int y = 0; y < mapHeight; y++)
{
objects.Add(new List<Object>());
}
for (var i = 0; i < mapWidth; i++)
{
for (var j = 0; j < mapHeight; j++)
{
objects[i].Add(new Dirt());
}
}
玩家有一个位置,例如18,11,位于此地图/多维列表的中间。我想检查他周围有哪些“瓷砖”,所以我只需要更新地图上的那些东西。列表[y][x] 不起作用。
【问题讨论】:
-
不知道如何从集合中获取项?你的意思是
Dirt gridSpace = objects[18][11]? -
你想用它做什么?
Object和System.Object一样吗? -
它应该像@ChrisSinclair 所说的那样工作。确保首先验证第一个索引是否为空。 If(objects[i] != null && objects[i][j] != null){ Foo myFoo = objects[i][j]; }
标签: c# list object multidimensional-array