2017-02-26 63 views
0

我在写一个简单的益智游戏。简化的措辞,我有一个类Level具有一定的特点(对象的位置,初始配置和一些参数)。我打算做很多关卡,例如30.有多聪明呢?每个级别我都有构造函数参数。#C项目中存储对象描述级别的架构

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#中的资源,我可能不适合,因为描述的级别更加困难。

+0

你是如何获得这些电平值?你打算做什么这些价值?它还取决于很多其他因素 – Coder

+0

我手动生成它们 –

+0

您可以编写一个小工具,将硬编码对象转换为json或xml文件,使用该工具生成文件。在你的主程序中基本上加载这些对象。 –

回答

1

你可以使用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); 

enter image description here