我正在开发游戏引擎,但我在使用磁贴引擎时遇到了一些问题。
我想在文本文件中这样做,我首先有4行告诉地图的大小和地图的大小,然后是地图/数组本身,例如:
32
32
10
10
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
当文件被加载时(使用streamreader),它会遍历文件并检查特殊字符 - 例如:
switch(lineReader)
{
case '#'
{
Solid solid = new Solid(Content.Load<Texture2D>("spr_Wall"), new Rectangle(0, 0, tileWidth, tile Height));
}
}
我一直在尝试用互联网搜索2-3个月,但无论哪种方式我都在搜索谷歌,或者只是一个糟糕的程序员......
嗯,无论如何,我怎么能做出这样的事情呢?
答案 0 :(得分:1)
如果文件格式正确(我的代码中没有错误检查)
private static void Main()
{
using (var reader = new StreamReader("filename"))
{
var tileSizeX = Convert.ToInt32(reader.ReadLine());
var tileSizeY = Convert.ToInt32(reader.ReadLine());
var mapSizeX = Convert.ToInt32(reader.ReadLine());
var mapSizeY = Convert.ToInt32(reader.ReadLine());
char[,] map = new char[mapSizeX, mapSizeY];
for (var i = 0; i < mapSizeY; i++)
{
string line = reader.ReadLine();
for (int j = 0; j < mapSizeX; j++)
{
map[j, i] = line[j];
}
}
for (int i = 0; i < mapSizeX; i++)
{
for (int j = 0; j < mapSizeY; j++)
{
Console.Write(map[i, j]);
}
Console.WriteLine();
}
}
Console.ReadLine();
}