このトピックにはたくさんの投稿がありますが、投稿中に2日間読んでも何も機能しなかったので、ここで質問することにしました。私はこのような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で描画したいと思います。したがって、各レイヤーからデータを読み取りたいのですが、string[]
これは私が試したものですが、2番目は機能せず、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「オブジェクト参照がオブジェクトのインスタンスに設定されていません」が表示されます。