2012-01-24 9 views
5

Jaki jest najprostszy sposób do odczytu i zapisu konfiguracji gry jak: czy pokazać fps lub odtwarzania dźwięku, itpkonfiguracja gier w C# i XNA

Być może istnieją pewne klasy w XNA, które mogą być wykorzystane, aby to zrobić ?

Naprawdę nie chcę używać domyślnego C# XML dla gier XNA.

+1

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. –

+0

Może to ci pomóc http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –

+0

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

Odpowiedz

1

Odkąd wspomniałeś, że możesz chcieć przenieść do Xboksa, polecam używanie biblioteki o nazwie EasyStorage. Jest to, co wielu ludzi używa podczas prostego czytania/pisania.

Zajmuje się pozwoleniem graczowi na wybranie urządzenia do przechowywania danych (jeśli istnieje więcej niż jeden) i na przykład na odtwarzaczu, który usuwa urządzenie pamięciowe przed próbą zapisania itp. Zapewni to strumień do zapisania/załadowania z , więc większość twojego rzeczywistego kodu zapisywania/ładowania będzie taka sama.

+0

Niestety, tak naprawdę nie jest to, czego szukałem, ale jest to dobre rozwiązanie, jeśli faktycznie będę wdrażać na Xbox. Na razie uciekłem się do xml, ponieważ nie ma w domyślnej bibliotece specjalnie stworzonej dla tego zadania :) – NewProger

5

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:

  1. Otwórz plik
  2. Zmiana wartości
  3. 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 ;-)

+1

Dziękuję za odpowiedź, ale nie ... te ustawienia muszą być zapisane na dysku i przeczytać przy starcie. Program może zapamiętać na przykład, czy ma być w trybie pełnoekranowym i tak dalej. – NewProger