我正在创建一个简单的RPG游戏,目前我正在研究武器对象。 我目前有一个W_Sword.cs类,它具有我想要创建的任何剑型武器的所有属性。对于我的库存系统,我只需要一个存储整数的数组,每个数字代表一个项目的ID。
我的问题是,如果我对所有类型的物品(消耗品,剑,轴,盾牌等)都有多个类,我应该如何在数据库中存储所有这些以便于访问? 因此,如果我想绘制一个特定的武器,我可以从数据库中调用它并将其创建为一个对象(在屏幕上,在清单等中)我认为XML可能是要走的路,但我'我不知道如何将XML文件中的数据导入我的XNA代码,以便从XML中的特定项目创建对象等。
如果我需要进一步说明,请告诉我。
答案 0 :(得分:3)
XML是一种很好的方法。它可以让您自己甚至是最终用户轻松添加新项目。
这些类是从基类派生的吗?我的想法是,如果你有一个消耗品,剑,斧头,盾牌等继承的基类物品,你可以尝试这样的事情:
<?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的计算机,所以我怀疑上面的语法是否正确。如果您希望得到进一步的帮助,我可以在今天晚些时候提供帮助。
答案 1 :(得分:0)
您可以使用可以为您保存和检索对象的对象数据库。例如NDatabase这是一个关于How to use it
的小教程