我真的不明白内容导入器/处理器在 XNA 中是如何工作的。
我需要阅读以下形式的文本文件(Content/levels/level1.txt):
x x
x x
x x
其中 x 只是整数,放入 int[,] 数组中。
关于编写简单的 .txt 导入器的任何提示???通过搜索 google/msdn,我只找到了 .x/.fbx 文件导入器示例。而且它们似乎太复杂了。
我真的不明白内容导入器/处理器在 XNA 中是如何工作的。
我需要阅读以下形式的文本文件(Content/levels/level1.txt):
x x
x x
x x
其中 x 只是整数,放入 int[,] 数组中。
关于编写简单的 .txt 导入器的任何提示???通过搜索 google/msdn,我只找到了 .x/.fbx 文件导入器示例。而且它们似乎太复杂了。
你真的需要处理文本文件吗?如果没有,那么您可能可以跳过大部分内容管道。
就像是:
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)。
XNA 4.0 使用
System.IO.Stream stream = TitleContainer.OpenStream("tilename.txt");
请参阅http://msdn.microsoft.com/en-us/library/bb199094.aspx和http://blogs.msdn.com/b/shawnhar/archive/2010/12/09/reading-files-in- xna-game-studio-4-0.aspx
那里似乎没有很多信息,但这篇博文确实指出了如何使用 XNA 通过代码加载 .txt 文件。
希望这可以帮助您将文件放入内存,从那里以您喜欢的任何方式解析它应该很简单。
http://www.ziggyware.com/readarticle.php?article_id=69可能是一个不错的起点。它涵盖了创建一个基本的内容处理器。