Chciałbym zaproponować znacznie prostszą odpowiedź. Zakładam, że te zmiany konfiguracyjne są tylko do testowania w trakcie rozwoju? Więc dlaczego nie po prostu mieć statyczną klasę z ustawieniami:
public static class Debugging
{
public static bool ShowFPS = true;
public static bool PlaySound = false;
}
w ten sposób, nie trzeba pisać żadnego kodudo odczytywania wartości z dysku. Wszystko, co musisz zrobić, to coś w stylu if (Debugging.ShowFPS)
. Nie trzeba również pisać żadnego kodu, aby zmienić wartości w czasie wykonywania innym niż ustawienie pola statycznego (Debugging.ShowFPS = false;
).
Pomyśl o tym, jeśli przechowywania wartości w, powiedzmy, plik XML, przepływ pracy będzie:
- Otwórz plik
- Zmiana wartości
- Naciśnij klawisz F5, aby uruchomić grę zmienione wartości:
Przepływ pracy jest dokładnie taki sam, z dodatkową korzyścią, że nie musisz pisać żadnego kodu, aby zajmować się czytaniem i pisaniem. Działa również z absolutnie bez zmian na wszystkich obsługiwanych platformach. A jeśli chcesz mieć 100% pewność, że nie zapomnisz zmienić ustawienia przed zwolnieniem, można użyć prostego ifdef z prawidłowymi wartościami dla produkcji:
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
}
Zdarza się, że najlepszą odpowiedzią jest najprostszym ;-)
Jeśli chcesz przeczytać ** i napisać ** (w czasie wykonywania), najprostszym sposobem jest użycie "domyślnej funkcji C# XML". Odczytywanie odczytu/zapisu XML. To naprawdę nie jest tak źle. –
Może to ci pomóc http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –
Tak, czytaj i pisz. Ale co z Xbox ...? Chciałbym potencjalnie również móc przenieść tę grę na Xbox. Czy podczas gry na Xboksie będzie można odczytać/napisać xml? – NewProger