我正在构建一个从文本文件中加载地图的游戏。
在创建处理地图的部件时,我只是将文本文件保存在内容文件夹中,并通过其Windows文件路径获取。这不适用于正确部署(甚至从不同驱动器运行游戏),因为它要求文件路径完全相同。
我环顾四周寻找一种方法来包含文本文件,就像我对Texture2D一样,但我找不到允许我使用它的任何类。其他问题的一些答案表明我只使用我的内容文件夹中的文本文件?我该怎么办?我的程序名称是IslandQuest(占位符;它甚至不涉及岛屿)所以我将文本文件放在XNA Studio生成的IslandQuestContent文件夹中吗?我如何从那里访问它,使其文件路径不依赖于计算机的驱动器配置?
感谢您的帮助。
答案 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)
主项目中的“内容”文件夹和内容项目中的内容在构建时将最终位于同一文件夹中。
文件路径仍为“Content / file.ext”或其他。