Конфигурация игры в C # и XNA - PullRequest
5 голосов
/ 24 января 2012

Как проще всего читать и записывать игровые конфигурации: показывать ли fps или воспроизводить звук и т. Д.

Может быть, в xna есть какой-то класс, который можно использовать для этого?

Я действительно не хочу использовать C # XML по умолчанию для игр XNA.

Ответы [ 2 ]

5 голосов
/ 24 января 2012

Я хотел бы предложить гораздо более простой ответ.Я предполагаю, что эти изменения конфигурации предназначены только для тестирования во время разработки, верно?Тогда почему бы просто не иметь статический класс с вашими настройками:

public static class Debugging
{
  public static bool ShowFPS = true;
  public static bool PlaySound = false;
}

Таким образом, вам не нужно писать любой код для чтения значений с диска.Все, что вам нужно сделать, это что-то вроде 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
    }

Иногда лучший ответ -самый простой; -)

1 голос
/ 24 января 2012

Поскольку вы упомянули, что вы можете портировать на xbox, я бы порекомендовал использовать библиотеку под названием EasyStorage .Это то, что многие люди используют при простом чтении / письме.

Он позволяет игроку выбирать свое устройство хранения (если существует более одного) и таким вещам, как проигрыватель, удаляющий устройство хранения перед попыткойчтобы сохранить и т. д. Это даст вам поток для сохранения / загрузки, так что большая часть вашего фактического кода сохранения / загрузки будет таким же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...