在XNA4.0中使用XML文件

在XNA4.0中使用XML文件,xml,xna-4.0,Xml,Xna 4.0,我在XNA4.0中编写了一个程序,该程序应该模拟装配线过程。表示装配线的模型非常简单,它包含5个“检查点”-开始、结束和3个工作站-表示在真实模型上放置某些传感器的位置。当对象经过这些检查点之前时,应该触发某个方法(如“开始”、“停止”或“计数”)。我通过硬编码这些“检查点”的坐标(因为这些“检查点”的位置不会改变,所以不需要一些高级的碰撞检测),并在需要时触发适当的方法来实现这一点。现在,我想增加一些可能性,使我的程序更加灵活。我希望能够启用/禁用这些“检查点”-启用时,传递对象将触发绑定到相

我在XNA4.0中编写了一个程序,该程序应该模拟装配线过程。表示装配线的模型非常简单,它包含5个“检查点”-开始、结束和3个工作站-表示在真实模型上放置某些传感器的位置。当对象经过这些检查点之前时,应该触发某个方法(如“开始”、“停止”或“计数”)。我通过硬编码这些“检查点”的坐标(因为这些“检查点”的位置不会改变,所以不需要一些高级的碰撞检测),并在需要时触发适当的方法来实现这一点。现在,我想增加一些可能性,使我的程序更加灵活。我希望能够启用/禁用这些“检查点”-启用时,传递对象将触发绑定到相应“检查点”的方法,禁用时,对象将在不触发任何方法的情况下传递(我指的是程序员,而不是用户,用户不应能够更改任何“检查点”的任何属性)。我做了一些研究,我认为最好的方法是使用包含每个“检查点”信息的XML文件。关于这一点,我有几个问题-首先,我从未处理过从XML文件加载到XNA程序的问题,因此,如果您能给我指一些教程或以前的文章来讨论这一点(我不知道这是否有什么区别,但文件将被标准化-它们将具有相同数量的标记,包含相同数量的信息),第二,这是解决这个问题的正确方法吗?或者你对如何解决这个问题有什么建议吗。该应用程序将只在PC上使用,因此我不必考虑跨平台限制。
谢谢

这里是一篇关于使用内容管道从xml加载对象的博客文章:

您可以创建一个设置类或其他东西来保存数据,或者只使用
列表
。在XNAContent中,列表的定义如下:

<Asset Type="System.Collections.Generic.List<*YourNamespaceNameHere*.Checkpoint>">

    <Item>
        Put your data here
    </Item>
    <Item>...

</Asset>

把你的数据放在这里
...
编辑:以下是逐步说明:

  • 创建内容管道扩展项目

  • 创建一个新的类库项目

  • 在Windows游戏项目中添加对类库的引用

  • 在内容项目中添加对内容管道扩展项目的引用

  • 按照给定的教程操作(游戏库类表示您以前创建的类库,或游戏项目本身。最好使用类库。)


  • 嗯,我不明白他所说的内容管道项目和游戏库项目是什么意思(本教程是一个系列的一部分)。同样在我的XML文件中,如果我使用类作为资产类型,编译器会向我显示一个错误“MyApp.MyClass是未知类型”,如果我尝试使用类似“System.String”的内容(这正好适合我的需要),则错误为“反序列化中间XML时出错。'Element'是无效的XMLNodeType…”。你知道一些教程可能会告诉我解决这个问题的每一步(我从来没有使用过XML文件,不是在XNA中,不是在C#)我现在编辑了我的答案,我建议你使用一个设置类,它有一个字符串列表或数组,而不是实际指定
    你会做的
    或类似的事情