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;
}
}