0
저는 현재 C#에서 GDI +를 사용하여 게임 엔진을 개발 중이며 맵에 엔진을로드하고 싶습니다. 나 타일 맵 편집기 (http://www.mapeditor.org/) 정말 쉽게지도를 만들고 XML 파일에 저장할 수 있습니다 사용하고 있습니다. 필자는 실제로 XML을 사용해 본 적이 없으며 실제로 XML을 읽는 데 도움이 필요합니다. 여기 XML 파일 읽기 (C#)
는 XML 파일이 무엇이다 : (페이스트 빈은 너무 거대하기 때문에), "데이터/레이어"라인이 라인 주위에 80여기가 내가 지금까지에있는 코드입니다 읽어. 어떤 이유로 든 타일 수가 0 인 것으로 보이고 그 이유를 모르겠습니다. 어떤 도움이라도 좋을 것입니다.
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;
}
}