C# 检查.txt文件中的每个字符
我正在开发一个游戏引擎,但是我的游戏引擎有一些问题 我想在一个文本文件中,我首先有4行,告诉一个平铺的大小和贴图的大小,然后是贴图/数组本身,例如: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
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();
}