C#和XNA中的游戏配置

New*_*ger 5 c# configuration xna

读取和编写游戏配置的最简单方法是:显示fps或播放声音等.

也许xna中有一些类可以用来做到这一点?

我真的不想在XNA游戏中使用默认的C#XML thingy.

Joe*_*nez 5

我想提出一个更简单的答案.我假设这些配置更改仅用于开发期间的测试吗?那么为什么不简单地使用您的设置静态类:

public static class Debugging
{
  public static bool ShowFPS = true;
  public static bool PlaySound = false;
}
Run Code Online (Sandbox Code Playgroud)

这样,您不必编写任何用于从磁盘读取值的代码.你所要做的就是这样if (Debugging.ShowFPS).除了设置静态字段(Debugging.ShowFPS = false;)之外,您还不必编写任何代码来在运行时更改值.

考虑一下,如果将值存储在XML文件中,您的工作流程将是:

  1. 打开文件
  2. 改变价值
  3. 按F5以使用更改的值运行游戏

工作流程完全相同,还有一个额外的好处,即您不必编写任何代码来处理读写.它也适用于所有支持的平台上绝对没有变化.如果您想100%确定在发布之前不忘记更改设置,则可以使用具有正确生产值的简单ifdef:

    public static class Debugging
    {
#if DEBUG
      public static bool ShowFPS = true;
      public static bool PlaySound = true;
#else
      public static bool ShowFPS = false;
      public static bool PlaySound = false;
#endif
    }
Run Code Online (Sandbox Code Playgroud)

有时,最好的答案是最简单的;-)


Geo*_*ett 1

既然您提到您可能想要移植到 xbox,我建议使用名为EasyStorage的库。这是很多人在进行简单的阅读/写作时使用的方法。

它允许玩家选择他们的存储设备(如果存在多个存储设备),以及玩家在尝试保存之前删除存储设备等。它会给你一个用于保存/加载的流,所以大多数您的实际保存/加载代码将是相同的。