2009-08-05 41 views
4

我正在使用XNA框架进行游戏。我的游戏有几个级别,我将这些数据存储在一个普通的旧文本文件中。在VS 2008中,当我将级别文件添加到项目并编译时,我收到以下错误消息。XNA Framework进口商

错误1无法自动检测哪个导入程序用于“级别\ 0.txt”。没有进口商处理这种文件类型。指定在您的项目中处理此文件类型的导入程序。 F:\ Projects \ BrickBreaker \ BrickBreaker \ Content \ Levels \ 0.txt BrickBreaker

我之所以这样做,是因为如果我改变我的关卡并运行游戏,关卡不会更新。我发现级别没有更新,因为VS从bin \ debug文件夹运行游戏,并且由于级别文件未包含在项目中,所以在更改时不会复制它们。我还发现,框架附带的平台样本包含项目中的关卡数据,这是我从中获得技术的地方。

因此,我应该使用不同的文件格式还是只处理手动复制新的级别文件?

解决方案 - 在深入探讨这篇文章的答案后,我发现了一个解决方案。我将文本文件添加到项目并将生成属性设置为无。在编译和文件包含在项目中时,错误不再发生。

+0

我会在项目中包含关卡。 – Nifle 2009-08-05 17:36:28

+0

您可能需要将级别文本文件配置为项目或其任何模块的依赖项。使用Makefile可以轻松完成,但由于我对VS不熟悉,因此我不会回答这个问题,只需将此注释留给任何知道更好的人的提示即可。 – Spidey 2009-08-05 17:53:12

回答

2

没有用于文本文件的内容导入器。忽略内容管道,只需像读取任何其他普通文本文件一样读取文件即可。

string line = string.empty; 
using(StreamReader sr = new StreamReader("filename")){ 
    while((line = sr.ReadLine()) != null){ 
     //reads line by line until eof 
     //do whatever you want with the text 
    } 
} 
+0

感谢您的回答。我在原始帖子的底部添加了更多评论。对新评论有何想法? – user151190 2009-08-05 17:19:07

8

如果您想要输出目录,您可以让Visual Studio复制文件。在项目文本文件的属性下,选择Build Action:None并根据需要将副本更改为输出目录。

你也可以查看平台游戏的样本。他们使用文本文件作为他们的级别格式。

+0

这真的有帮助!谢谢 – BigBug 2011-12-27 07:50:42

0

我有类似的问题,并发现将文件添加到内容项目,并将构建操作设置为无,比完全跳过内容管道更容易。