C# 检查.txt文件中的每个字符

C# 检查.txt文件中的每个字符,c#,arrays,streamreader,C#,Arrays,Streamreader,我正在开发一个游戏引擎,但是我的游戏引擎有一些问题 我想在一个文本文件中,我首先有4行,告诉一个平铺的大小和贴图的大小,然后是贴图/数组本身,例如: 32 32 10 10 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 当文件加载时(使用streamreader),它会在文件中运行并检查特殊字符,例如: switch(li

我正在开发一个游戏引擎,但是我的游戏引擎有一些问题

我想在一个文本文件中,我首先有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));
    }
}
开关(读线器)
{
案例“#”
{
实体=新实体(Content.Load(“spr_Wall”)、新矩形(0,0,瓷砖宽度,瓷砖高度));
}
}
我已经尝试了大概2-3个月的互联网搜索,但不管怎样我都不擅长谷歌搜索,或者只是一个差劲的程序员


好吧,那么,我怎样才能做到这一点呢?

如果文件的格式正确(我的代码中没有错误检查)

private static void Main()
{
使用(var reader=newstreamreader(“文件名”))
{
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=新字符[mapSizeX,mapSizeY];
对于(var i=0;i
那么您的问题出在哪里?读线器是什么?是绳子吗?在这种情况下,还应该对字符串的每个字符运行嵌套循环?可以将对象反序列化为强类型类。例如,如果您有一个表示游戏设置的文件,您可以拥有一个
GameSettings
类,并将其传递给XmlSerializer以读取和写入该文件。那么它是人类可读的,也是机器可读的。Felix.K-我的问题是我不知道如何组合这样的工作代码..:/您还可以使用dictionary来实现不同的solid定义sok,所以我添加了这个,并添加了4行,每个行上都有一个值,即tile size和map size。(32 32 5),然后我在每行上添加了5行,每行5个零,当我运行程序时,它会生成一行零。如何添加一个可以在开关中使用的变量来检查符号???提前感谢:)这里现在有控制台;你可以在switch语句中使用map[i,j],这样你就可以看到其中的字符这就是我几个月没有成功的原因。我不知道如何绘制它或何时加载以及何时添加绘制方法。。D:有什么代码/教程可以帮助我吗?是的,但我试着用C#来减少工作量,看看有没有什么东西能起作用..我想是个坏主意:/我觉得这个教程很好:
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();
    }