如何在内容中实现文本文件(XNA)

时间:2013-07-09 22:41:32

标签: c# text xna

我正在构建一个从文本文件中加载地图的游戏。

在创建处理地图的部件时,我只是将文本文件保存在内容文件夹中,并通过其Windows文件路径获取。这不适用于正确部署(甚至从不同驱动器运行游戏),因为它要求文件路径完全相同。

我环顾四周寻找一种方法来包含文本文件,就像我对Texture2D一样,但我找不到允许我使用它的任何类。其他问题的一些答案表明我只使用我的内容文件夹中的文本文件?我该怎么办?我的程序名称是IslandQuest(占位符;它甚至不涉及岛屿)所以我将文本文件放在XNA Studio生成的IslandQuestContent文件夹中吗?我如何从那里访问它,使其文件路径不依赖于计算机的驱动器配置?

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

这可能不是最好的方法,但只是回顾一下我在XNA大学的第一年所做的事情,

我将txt文件添加到contents文件夹中。然后在文件的属性中(在解决方案资源管理器和视图属性窗口中选择它)应该有“复制到输出目录”,确保如果更新则复制。

然后只是一个

的案例
string.Format("Content/{0}.txt", filename)

我确实认为这可以通过以下方式改进,但未经测试

Path.Combine(Content,filename +".txt");

答案 1 :(得分:0)

就我而言,我正在从主项目的数据文件夹中读取XML文件文件。

所以在我的解决方案探索项目中,我设置了这个:

WindowsPhoneGame1
  ...
  data/
    content.xml
  Game1.cs
  Program.cs
  etc...

content.xml的属性为Build Action:内容并复制到输出目录:始终复制

在阅读文件的类中,我根据文档使用了TitleContainer.OpenStream Method

  

返回默认标题存储中现有文件的流   地点。 ....返回的流是只读的。要读取的文件必须已存在,否则此方法将失败。

我的示例代码

//open stream
Stream stream = TitleContainer.OpenStream("data/content.xml");
//do something with it...

答案 2 :(得分:0)

  1. 在主项目中创建“内容”文件夹。
  2. 将无法放入Content项目的文件放在那里。
  3. 务必将所有内容设置为内容构建操作并始终复制。
  4. 主项目中的“内容”文件夹和内容项目中的内容在构建时将最终位于同一文件夹中。

    文件路径仍为“Content / file.ext”或其他。