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á:
- Abrir el archivo
- Cambiar el valor
- 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 ;-)
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. –
Puede ser que esto pueda ayudarlo http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –
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