【问题标题】:architecture of storing object descriptions levels in #C project#C 项目中存储对象描述级别的架构
【发布时间】:2017-02-26 15:31:22
【问题描述】:

我正在编写一个简单的益智游戏。简化的措辞我有一个类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 或 xml 文件,使用该工具生成文件。在你的主程序中基本上加载这些对象。
  • 那里有示例代码可以做到这一点?对于初学者来说,理想更容易

标签: c# 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2012-09-09
    • 2020-03-11
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多