2012-01-24 17 views
5

¿Cuál es el modo más sencillo de leer y escribir configuraciones del juego como: si desea mostrar fps o jugar sonido, etc.configuración del juego en C# y XNA

Tal vez hay alguna clase de XNA que puede ser utilizado para hacer eso ?

Realmente no quiero usar Cody XML predeterminado para un juego XNA.

+1

Si quiere leer ** y escribir ** (en tiempo de ejecución), la manera más fácil es usar una "cosa XML predeterminada de C#". Búsqueda de lectura/escritura XML. Realmente no es tan malo. –

+0

Puede ser que esto pueda ayudarlo http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –

+0

Sí, lea y escriba. Pero ¿qué pasa con xbox ...? También me gustaría potencialmente poder transferir este juego a xbox. ¿Será posible leer/escribir xml al ejecutar juegos en xbox? – NewProger

Respuesta

1

Como ya mencionaste que es posible que desees realizar un port a la xbox, te recomendaría usar una biblioteca llamada EasyStorage. Es lo que mucha gente usa cuando hace lectura/escritura simple.

Se trata de permitir que el jugador elija su dispositivo de almacenamiento (si hay más de uno) y con cosas como que el jugador retire el dispositivo de almacenamiento antes de intentar guardar etc. Le dará un flujo para guardar/cargar desde , por lo que la mayor parte de su código de guardado/carga real será el mismo.

+0

Desafortunadamente eso no es realmente lo que estaba buscando, pero es una buena opción si realmente voy a implementar para xbox. Por ahora recurrí a xml porque no hay nada en la biblioteca predeterminada específicamente creada para esa tarea :) – NewProger

5

Me gustaría proponer una respuesta mucho más simple. Supongo que estos cambios de configuración son solo para probar durante el desarrollo ¿no? Entonces ¿por qué no simplemente tener una clase estática con la configuración:

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

De esta manera, usted no tiene que escribir ningún código para la lectura de los valores desde el disco. Todo lo que tienes que hacer es algo así como if (Debugging.ShowFPS). Tampoco tiene que escribir ningún código para cambiar los valores en el tiempo de ejecución que no sea la configuración de un campo estático (Debugging.ShowFPS = false;).

pensar en ello, si se almacenan los valores en, por ejemplo, un archivo XML, su flujo de trabajo será:

  1. Abrir el archivo
  2. Cambiar el valor
  3. Presione F5 para ejecutar el juego con los valores modificados

el flujo de trabajo es exactamente el mismo, con el beneficio adicional de que no tiene que escribir ningún código para tratar la lectura y la escritura. También funciona sin ningún cambio en todas las plataformas compatibles. Y si quieres estar 100% seguro de que usted no se olvide de cambiar un ajuste antes de la liberación, se puede utilizar un ifdef sencillo con los valores correctos para la producción:

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 veces, la mejor respuesta es el más simple ;-)

+1

Gracias por su respuesta, pero no ... estas configuraciones deben guardarse en el disco y leerse al inicio. Entonces, el programa puede recordar, por ejemplo, si debe estar en pantalla completa y demás. – NewProger