2012-01-24 24 views
5

Qual è il modo più semplice per leggere e scrivere configurazioni di gioco come: se mostrare fps o divertirsi suono, eccConfigurazione del gioco in C# e XNA

Forse ci sono qualche classe in XNA che può essere utilizzato per fare questo ?

In realtà non voglio usare predefinito C# XML thingy per un gioco XNA.

+1

Se si desidera leggere ** e scrivere ** (in fase di esecuzione) il modo più semplice è utilizzare un "predefinito C# XML thingy". Ricerca lettura/scrittura XML. Non è poi tanto male. –

+0

Questo potrebbe essere d'aiuto http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –

+0

Sì, leggi e scrivi. Ma per quanto riguarda xbox ...? Mi piacerebbe anche poter portare questo gioco su xbox. Sarà possibile leggere/scrivere xml durante l'esecuzione di giochi su Xbox? – NewProger

risposta

1

Dal momento che hai accennato che potresti voler eseguire il porting su xbox, ti consiglio di utilizzare una libreria denominata EasyStorage. È quello che molte persone usano quando fanno una semplice lettura/scrittura.

Si tratta di consentire al giocatore di scegliere il proprio dispositivo di archiviazione (se ne esiste più di uno) e con cose come il giocatore che rimuove il dispositivo di archiviazione prima di provare a salvare ecc. Vi darà un flusso da salvare/caricare da , quindi la maggior parte del tuo attuale codice di salvataggio/caricamento sarà la stessa.

+0

Sfortunatamente non è proprio quello che stavo cercando, ma è una buona opzione se effettivamente distribuirò xbox. Per ora ho fatto ricorso a xml perché non c'è nulla nella libreria predefinita creata appositamente per quell'attività :) – NewProger

5

Mi piacerebbe proporre una risposta molto più semplice. Presumo che queste modifiche alla configurazione siano solo per test durante lo sviluppo, giusto? Allora perché non basta avere una classe statica con le impostazioni:

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

In questo modo, non è necessario scrivere alcun codice per la lettura dei valori dal disco. Tutto quello che devi fare è qualcosa come if (Debugging.ShowFPS). Inoltre, non è necessario scrivere alcun codice per modificare i valori in fase di runtime diverso dall'impostazione di un campo statico (Debugging.ShowFPS = false;).

Pensateci, se si memorizzano i valori, per esempio, un file XML, il flusso di lavoro sarà:

  1. Aprire il file
  2. Modifica valore
  3. Premere F5 per eseguire il gioco con i valori modificati

il flusso di lavoro è esattamente lo stesso, con l'ulteriore vantaggio che non è necessario scrivere alcun codice per gestire la lettura e la scrittura. Funziona anche senza alcuna modifica su tutte le piattaforme supportate. E se si vuole essere sicuri al 100% che non si dimentica di cambiare un'impostazione prima di rilasciare, è possibile utilizzare un semplice ifdef con i valori corretti per la produzione:

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 
    } 

A volte, la risposta migliore è la più semplice ;-)

+1

Grazie per la risposta, ma no ... queste impostazioni devono essere salvate su disco e lette all'avvio. Quindi il programma può ricordare ad esempio se essere a schermo intero e così via. – NewProger