Я создаю простую игру RPG, и в настоящее время я работаю над объектами оружия. В настоящее время у меня есть класс W_Sword.cs, который имеет все свойства для любого типа оружия меча, которое я хочу создать. Для моей системы инвентаризации я просто собираюсь иметь массив, в котором хранятся целые числа, и каждый номер будет представлять собой идентификатор элемента.
Мой вопрос: если у меня есть несколько классов для всех типов предметов (расходные материалы, мечи, топоры, щиты и т.д.), Как я должен хранить все это как базу данных для легкого доступа? Поэтому, если я хочу нарисовать конкретное оружие, я могу просто вызвать его из базы данных и создать его как объект (на экране, в инвентаре и т.д.). Я думаю, что XML может быть способом, но я, m не уверен, как получить данные из файла XML в мой код XNA для создания объектов и т.д. из определенных элементов в XML.
Пожалуйста, дайте мне знать, если я буду подробно останавливаться.
XML - хороший способ сделать это. Это позволит легко добавлять новые элементы самостоятельно или даже конечным пользователем.
Являются ли классы производными от базового класса? Я считаю, что если у вас есть базовый класс Item, который наследует расходные материалы, мечи, оси, щиты и т.д., Вы можете попробовать что-то вроде этого:
<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="Generic.List<MyDataTypes.Item>">
<Item>
<Name>Wooden Sword</Name>
<Properties>10 10 10 10</Properties>
<TextureName>WoodenSword</TextureName>
</Item>
<Item>
<Name>Wooden Shield</Name>
<Properties>10 10 10 10</Properties>
<TextureName>WoodenShield</TextureName>
</Item>
</Asset>
</XnaContent>
Затем в вашем коде:
// Load items into content
//http://msdn.microsoft.com/en-us/library/ff604980.aspx
List<Item> listOfItems = Content.Load<List<Item>>("xmlFileName");
foreach (Item item in listOfItems)
{
myItemTexture = Content.Load<Texture2D>(item.TextureName);
...
}
Это общий обзор. Я не нахожусь на компьютере с Visual Studio, поэтому я сомневаюсь, что это синтаксически корректно. Если вы хотите получить дополнительную помощь, я могу помочь позже сегодня.
Вы можете использовать базу данных объектов, которая может сохранять и извлекать объекты для вас. Например, NDatabase И вот небольшой учебник о том, как его использовать