0
私は現在、GDI +を使用してC#でゲームエンジンを開発しており、マップを自分のエンジンにロードしたいと思っています。私はタイルマップエディタ(http://www.mapeditor.org/)を使用しています。マップエディタを使用すると、マップを簡単に作成してXMLファイルに保存できます。私は本当にXMLで何かをしたことはありませんし、それを読むための助けが本当に必要です。ここで XMLファイルを読む(C#)
は、XMLファイルが何であるかである:(ペーストビンが、それはとても巨大だから)、「データ/層」行は行の周りにある80、ここでは、私がこれまでに持っているコードです。それを読んで。何らかの理由で、私はタイルの数がゼロであると思われ、なぜ私は確信していません。どんな助けも素晴らしいだろう。
public static void LoadTMX(Screen screen, SpriteSheet sprs, string path)
{
try
{
using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
List<int> gids = new List<int>();
XmlDocument xdoc = new XmlDocument();
xdoc.Load(stream);
int width = int.Parse(xdoc.DocumentElement.GetAttribute("width"));
int height = int.Parse(xdoc.DocumentElement.GetAttribute("height"));
int tileWidth = int.Parse(xdoc.DocumentElement.GetAttribute("tilewidth"));
int tileHeight = int.Parse(xdoc.DocumentElement.GetAttribute("tileheight"));
XmlNodeList layers = xdoc.DocumentElement.SelectNodes("layer");
for (int i = 0; i < layers.Count; i++)
{
XmlNodeList tiles = layers[i].SelectSingleNode("data").SelectNodes("tile");
// why is the tile count zero?
Console.WriteLine(tiles.Count);
}
}
}
catch(Exception e)
{
throw e;
}
} int tileWidth = int.Parse(xdoc.DocumentElement.GetAttribute("tilewidth"));
int tileHeight = int.Parse(xdoc.DocumentElement.GetAttribute("tileheight"));
XmlNodeList layers = xdoc.DocumentElement.SelectNodes("layer");
for (int i = 0; i < layers.Count; i++)
{
XmlNodeList tiles = layers[i].SelectSingleNode("data").SelectNodes("tile");
Console.WriteLine(tiles.Count);
}
}
}
catch(Exception e)
{
throw e;
}
}