2012-01-09 71 views
0

我在XNA 4.0中制作了一个应该模拟装配线过程的程序。代表装配线的模型非常简单,它包含5个“检查点” - 开始,结束和3个工作站 - 代表将某些传感器放置在现实生活模型上的位置。当一个对象通过这些检查点时,应该触发某个方法(如“开始”,“停止”或“计数”)。我设法通过对这些“检查点”的坐标进行硬编码(因为这些“检查点”位置不会改变,不需要一些先进的碰撞检测),并在需要时触发适当的方法。现在,我想创造一些额外的可能性,这将使我的程序更加灵活。我希望能够启用/禁用这些“检查点” - 启用时,传递对象将触发绑定到相应“检查点”的方法,并且禁用时,对象将传递而不触发任何方法(通过“I” ,我的意思是程序员,而不是用户,用户不应该能够改变任何“检查点”的任何属性)。我做了一些研究,我认为最好的方法是使用一个XML文件,其中包含有关每个“检查点”的信息。我有几个关于这方面的问题 - 首先,我从来没有从XML文件加载到XNA程序,所以如果你可以指向我的一些教程或以前的帖子,涵盖了这一点(我不知道它是否有任何区别,但这些文件将被标准化 - 它们将具有相同数量的标签,包含相同数量的信息),其次,这是甚至解决这个问题的正确方法,或者您对如何做到这一点有一些建议。该应用程序将仅用于个人电脑,因此我不必考虑跨平台限制。 感谢在XNA 4.0中使用XML文件

回答

0

这里是一个博客张贴关于使用内容管道从XML加载的对象:

http://www.jamesewelch.com/2008/04/17/how-to-use-xnacontent-xml-files/

你可以做一个设置类或东西来保存数据,或只使用一个List<Checkpoint>。在XNAContent,列表定义,像这样:

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

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

</Asset> 

编辑:这里是一步一步的指示:

  1. 创建一个内容管道扩建工程

  2. 创建一个新的类库项目

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

  4. 在内容项目

  5. 添加到内容管道扩建工程的引用按照所给的教程(游戏库类意味着你之前创建的类库,还是游戏项目本身。 )

+0

嗯,我不明白他是什么意思的内容管道项目和什么由游戏库项目(本教程是系列的一部分)。同样在我的XML文件中,如果我使用我的类作为资产类型,编译器向我显示错误“MyApp.MyClass是未知类型”,如果我尝试使用类似“System.String”的东西(这对我的工作很好需要)错误是“反序列化中间XML时出错”。元素'是无效的XMLNodeType ....“。你知道一些教程,可能会告诉我每一步解决这个问题(我从来没有用XML文件工作,而不是XNA不用C#) – NDraskovic 2012-01-12 10:48:11

+0

我现在编辑了我的答案,我建议你使用设置类有一个列表或字符串数​​组,而不是实际指定''你会做''或类似的东西 – annonymously 2012-01-13 12:02:57