奥基。因此,我制作这个简单的脚本,从阵列中生成块,几乎就像一个基于tile的2D游戏。但它并不像我想要的那样预先形成,我知道为什么,但我找不到任何解决方案。如果可以,请帮助我:))
所以在这里我用一个空格作为分隔符来运行StreamReader:
StreamReader reader = new StreamReader (@"blablabla\path\levelOneMap.txt");
string s = reader.ReadToEnd();
while(s != null)
{
char[] delimiter = {' '};
// Level holder is a string array, wish hold x, s or h.
levelHolder = s.Split(delimiter, System.StringSplitOptions.RemoveEmptyEntries);
s = reader.ReadLine();
}
他正在阅读的文件看起来像这样:
x x x
x s x
x h x
依此类推,x' es也是如此,它会产生一个块。 s是一个起始块, 而h只是地上的一个洞。
我做了一堆debug.logs并将x,s和h更改为1 2 3 4 ...以查看发生了什么。结果是第一个1 2很好,但是levelHolder [2]包含3和4。 如何让这个脚本理解它应该跳过这两个' '和' \ n' ?
答案 0 :(得分:0)
调用ReadToEnd()
后,您将整个文件放在一个变量中,并且该流已到达文件结尾。之后调用ReadLine()
不会做任何事情。所以你可以删除循环。
然后添加您想要的任何分隔符,可能您需要所有ASCII空格字符({ ' ', '\t', '\r', '\n', '\v' }
)。
如果您希望将所有块放入单个levelHolder
数组中,那就是这样。如果您希望每个行都在自己的数组中,请保持循环,并将初始ReadToEnd()
更改为另一个ReadLine()
。