3

我真的不明白内容导入器/处理器在 XNA 中是如何工作的。

我需要阅读以下形式的文本文件(Content/levels/level1.txt):

x x
x x
x x

其中 x 只是整数,放入 int[,] 数组中。

关于编写简单的 .txt 导入器的任何提示???通过搜索 google/msdn,我只找到了 .x/.fbx 文件导入器示例。而且它们似乎太复杂了。

4

4 回答 4

10

你真的需要处理文本文件吗?如果没有,那么您可能可以跳过大部分内容管道。

就像是:

string filename = "Content/TextFiles/sometext.txt";
string path = Path.Combine(StorageContainer.TitleLocation, filename);

string lineOfText;
StreamReader sr = new StreamReader(path);
while ((lineOfText = sr.ReadLine()) != null)
{
  // do something
}

此外,请务必在您添加的文本文件上将“构建操作”设置为“无”,并将“复制到输出目录”设置为“如果较新则复制”。这告诉内容管道不要编译文本文件,而是将其复制到输出目录以供原样使用。

我从 Microsoft 提供的 RacingGame 示例中得到了这个(或多或少)。它放弃了大部分内容管道,只是为其大部分关卡数据加载和处理文本文件 (XML)。

于 2009-04-22T05:53:58.353 回答
4

XNA 4.0 使用

System.IO.Stream stream = TitleContainer.OpenStream("tilename.txt");

请参阅http://msdn.microsoft.com/en-us/library/bb199094.aspxhttp://blogs.msdn.com/b/shawnhar/archive/2010/12/09/reading-files-in- xna-game-studio-4-0.aspx

于 2011-02-02T19:24:55.300 回答
2

那里似乎没有很多信息,但这篇博文确实指出了如何使用 XNA 通过代码加载 .txt 文件。

希望这可以帮助您将文件放入内存,从那里以您喜欢的任何方式解析它应该很简单。

XNA 3.0 - 在 Xbox 上读取文本文件

于 2009-04-21T23:41:27.327 回答
2

http://www.ziggyware.com/readarticle.php?article_id=69可能是一个不错的起点。它涵盖了创建一个基本的内容处理器。

于 2009-04-21T23:42:52.363 回答