我知道,这个主题有很多帖子,但是由于我在帖子中阅读了两天但没有任何效果,所以我决定在这里问。我有一个像这样的 XML (Level01.xml) 文件
<map version="1.0">
<tileset>
<image source="....>
</tileset>
<layer name="background">
<data encoding="csv">
3,3,3,3,3,3,3,
3,3,3,3,3,3,3,
3,3,3,3,3,3,3,
3,3,3,3,3,3,3
</data>
</layer>
<layer name="walls">
<data encoding="csv">
182,182,182,182,182,8,8,
182,8,182,8,8,8,8,
182,182,182,182,182,8,8,
182,8,182,8,8,8,8,
</data>
</layer>
</map>
它是具有不同图层的(平铺)地图,我想在 XNA 中绘制它。因此,我想将每一层的数据读入 astring[]
这是我尝试过的,但它不适用于第二个string[] walldata
,我非常绝望,因为我不明白为什么
public class LevelXmlReader
{
public string[] backgroundData;
public string[] wallData;
LevelXmlReader()
{
XDocument doc = XDocument.Load(@"Level/Level01.xml");
foreach (XElement layer in doc.Element("map").Descendants("layer"))
{
var lay = doc.Element("map").Element("layer");
var layName = lay.Attribute("name").Value;
switch (layName)
{
case "background":
{
backgroundData = lay.Element("data").Value.Split(',');
}
break;
case "walls":
{
wallData = lay.Element("data").Value.Split(',');
}
break;
}
}
}
}
当我尝试绘制wallData
时,总是出现 ExceptionError "Object reference not set to an instance of an object."