【发布时间】:2018-09-09 12:25:30
【问题描述】:
我一直在为我的 Xna C# 游戏项目开发基于图块的地图引擎。与大多数其他系统一样,该系统使用与映射到屏幕上特定位置的图块集中的图块相对应的数字。这很好用,但需要屏幕上的每个单元格手动输入一个数字。相反,我决定从一个 .txt 文件中读取关卡布局,其中包含在游戏中所处位置的每个图块的数量,如下所示:
1111
0110
1001
1100
其中 1 是草,0 是泥土。同样,我知道这是一种常见的技术。我编写的代码可以读取每一行并将第一列中的下一个位置设置为相应的平铺图形。这很好,但它对地图的其余部分没有帮助。我一直在搜索,找不到如何将一行中的每个数字拆分为一个单独的数字,以便第一行显示为 (0,0) = 1、(0,1) = 1 等,所以我可以然后将坐标与地图上的 x 和 y 位置相匹配,并将值与图块的类型相匹配。
所以我需要的是能够分配一个与当前位置相对应的二维数组(文件中剩下多少字符,.txt 文件中有多少行),所以我可以只运行两个分支 for 循环( x 和 y) 用于关卡中的每个图块,即:
for (x=0; x<levelwidth; x++)
{
for (y=0; y<levelheight; y++)
{
Row[x].Column[y].Tile = Convert.ToInt32(filepos[x,y]);
}
}
【问题讨论】:
-
请不要在标题末尾添加“C#”之类的内容。这就是标签的用途。
-
对不起,我只是想弄清楚是哪种语言。
-
正如我所说,标签说明了一切。