1
XMLを使用して、テキストベースのアドベンチャーゲームの基本ファイルを保存しています。 XMLストリングは、インベントリー・ノードが作成されていないことを除いて保管します。私はクエストを保存するために同じプロセスを使用しています。クエストとクエストの完了は節約します。コードはXMLノードを作成せず、スキップします
//Create the "InventoryItems" child node to hold each InventoryItem node
XmlNode inventoryItems = playerData.CreateElement("InventoryItems");
player.AppendChild(inventoryItems);
//Create and "inventoryItem" node for each item in player's inventory
foreach (InventoryItem item in this.Inventory)
{
XmlNode inventoryItem = playerData.CreateElement("InventoryItem");
XmlAttribute idAttribute = playerData.CreateAttribute("ID");
idAttribute.Value = item.Details.ID.ToString();
inventoryItem.Attributes.Append(idAttribute);
XmlAttribute quantityAttribute = playerData.CreateAttribute("Quantity");
quantityAttribute.Value = item.Quantity.ToString();
inventoryItem.Attributes.Append(quantityAttribute);
inventoryItem.AppendChild(inventoryItems);
}
これは、インベントリノードとクエストノードを作成して保存するためのコードです。私はforeachステートメントでブレークポイントを設定します。コードはその文の中に入りますが、そのブロックの最初の行にはなりません。 XmlNode inventoryItem = playerData.CreateElement("InventoryItem");
私はこの問題に悩まされています。
あなたは' AppendChild'でコールを逆にしないでしょうか? –
この呼び出しは、inventoryItemsをプレーヤノードの子ノードにしています。 – LukeDev
そして、 'inventoryItem'の' inventoryItems'子を作るよりも... –