在我的游戏过程中,您可以保存地图并将地图中的图块存储到 xml 文件中。
到目前为止没有问题。当我尝试保存它时问题就开始了,它UnauthorizedAccessException
以某种方式给了我一个错误。
该文件夹位于我的游戏的安装目录中:
安装目录/数据/地图/
我检查以确保该文件夹已成功创建并具有正确的权限(写入、读取和执行)。
难道我做错了什么?
这是我的代码:
private void CreateXMLOfMap()
{
List<Tile> tiles = mapContainer.GetTileList();
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode rootNode = doc.CreateElement("Map");
doc.AppendChild(rootNode);
XmlNode mapName = doc.CreateElement("Name");
mapName.AppendChild(doc.CreateTextNode("custom_map"));
rootNode.AppendChild(mapName);
XmlNode tilesNode = doc.CreateElement("Tiles");
rootNode.AppendChild(tilesNode);
for (int i = 0; i < tiles.Count; i++ )
{
XmlNode tileNode = doc.CreateElement("Tile");
tilesNode.AppendChild(tileNode);
XmlNode positionNode = doc.CreateElement("Position");
tileNode.AppendChild(positionNode);
XmlNode xNode = doc.CreateElement("X");
xNode.AppendChild(doc.CreateTextNode(tiles[i].GetTilePosition().X.ToString()));
positionNode.AppendChild(xNode);
XmlNode yNode = doc.CreateElement("Y");
yNode.AppendChild(doc.CreateTextNode(tiles[i].GetTilePosition().Y.ToString()));
positionNode.AppendChild(yNode);
XmlNode textureNode = doc.CreateElement("Texture");
textureNode.AppendChild(doc.CreateTextNode(tiles[i].GetTileInfo().Name.ToString()));
tileNode.AppendChild(textureNode);
XmlNode YFrameNode = doc.CreateElement("YFrame");
YFrameNode.AppendChild(doc.CreateTextNode(tiles[i].GetCurrentFrame().Y.ToString()));
tileNode.AppendChild(YFrameNode);
}
doc.Save(Constants.MAPS_DIRECTORY);
}