我正在写一个简单的益智游戏。简化的措辞我有一个类Level
具有某些特征(对象的位置,初始配置和一些参数)。我计划做很多级别,例如30.如何聪明地做到这一点?每个级别我都有构造函数参数。
public Level (int a, int to, int s, int d, int e, int af);
当然我可以在每个级别的对象的代码中做,并手动设置Tipo的所有特性
Level Level 1 = New Level (552531, 552351, 55235531, 53253, 5153, 5151233);
Level Level 2 = New Level (3641, 346351, 553461, 5334653, 34653, 523462);
Level Level 3 = new level (6423, 461, 262346, 2346346, 234646, 62546);
...
Level Level30 = new level (235, 6346, 643654, 34624634, 346346, 534626);
当然,这对我的简单项目很有用,它可以并且看起来很好,但是如果设计师会更困难,并且会采用数组,字符串和其他对象?我听说你可以存储存储在xml和json中的关卡的描述。我应该用吗?它方便吗?简单的例子,或比较易用性。遗憾的是,我发现它不太方便,人们在这种情况下使用它。我也听说过C#中的资源,我可能不适合,因为描述的级别更难。
你可以使用json文件并用Newtonsoft.Json解析它。
levels.json
[{
"A": 552531,
"To": 552351,
"S": 55235531,
"D": 53253,
"E": 5153,
"AF": 5151233 },
{
"A": 3641,
"To": 346351,
"S": 553461,
"D": 5334653,
"E": 34653,
"AF": 523462
},
{
"A": 6423,
"To": 461,
"S": 262346,
"D": 2346346,
"E": 234646,
"AF": 62546
},
{
"A": 235,
"To": 6346,
"S": 643654,
"D": 34624634,
"E": 346346,
"AF": 534626
}]
使用..
var path = @"YOUR FILE PATH\levels.json";
var strJson = System.IO.File.ReadAllText(path);
List<Level> levels = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Level>>(strJson);