Tôi muốn đề xuất một câu trả lời đơn giản hơn nhiều. Tôi cho rằng những thay đổi cấu hình này chỉ dành cho thử nghiệm trong quá trình phát triển đúng không? Vậy tại sao không chỉ đơn giản là có một lớp tĩnh với các thiết lập của bạn:
public static class Debugging
{
public static bool ShowFPS = true;
public static bool PlaySound = false;
}
Bằng cách này, bạn không cần phải viết bất kỳ mã cho việc đọc các giá trị từ đĩa. Tất cả những gì bạn phải làm là một cái gì đó như if (Debugging.ShowFPS)
. Bạn cũng không phải viết bất kỳ mã nào để thay đổi các giá trị trong thời gian chạy khác hơn là thiết lập một trường tĩnh (Debugging.ShowFPS = false;
).
Hãy suy nghĩ về nó, nếu bạn lưu trữ giá trị của bạn trong, chẳng hạn, một tập tin XML, dòng chảy công việc của bạn sẽ là:
- mở tập tin
- Thay đổi giá trị
- Nhấn F5 để chạy các trò chơi với các giá trị đã thay đổi
quy trình làm việc hoàn toàn giống nhau, với lợi ích bổ sung mà bạn không phải viết bất kỳ mã nào để xử lý việc đọc và viết. Nó cũng hoạt động với hoàn toàn không có thay đổi trên tất cả các nền tảng được hỗ trợ. Và nếu bạn muốn trở thành 100% chắc chắn rằng bạn không quên thay đổi một thiết lập trước khi phát hành, bạn có thể sử dụng một ifdef đơn giản với các giá trị chính xác cho sản xuất:
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
}
Đôi khi, câu trả lời tốt nhất là đơn giản nhất ;-)
Nguồn
2012-01-24 13:06:41
Nếu bạn muốn đọc ** và viết ** (lúc chạy), cách dễ nhất là sử dụng "điều C# XML mặc định". Tra cứu đọc/ghi XML. Nó thực sự không quá tệ. –
Có thể điều này có thể giúp bạn http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –
Vâng, đọc và viết. Nhưng những gì về xbox ...? Tôi muốn có khả năng cũng có thể chuyển trò chơi này sang xbox. Nó sẽ có thể đọc/ghi xml khi chạy game trên xbox? – NewProger