2012-01-24 27 views
5

gì là cách đơn giản nhất để đọc và viết cấu hình trò chơi như: cho dù để hiển thị fps hoặc chơi âm thanh, vvcấu hình game trong C# và XNA

Có thể có một số lớp trong XNA có thể được sử dụng để làm điều đó ?

Tôi thực sự không muốn sử dụng tính năng C# XML mặc định cho trò chơi XNA.

+1

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

+0

Có thể điều này có thể giúp bạn http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –

+0

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

Trả lời

1

Vì bạn đã đề cập rằng bạn có thể muốn chuyển sang xbox, tôi khuyên bạn nên sử dụng thư viện có tên là EasyStorage. Đó là điều mà nhiều người sử dụng khi đọc/viết đơn giản.

Thỏa thuận cho phép người chơi chọn thiết bị lưu trữ của họ (nếu có nhiều thiết bị) và với những thứ như trình phát xóa thiết bị lưu trữ trước khi lưu, v.v. , vì vậy hầu hết mã lưu/tải thực tế của bạn sẽ giống nhau.

+0

Thật không may đó không phải là thực sự những gì tôi đang tìm kiếm, nhưng nó là lựa chọn tốt nếu tôi thực sự sẽ được triển khai cho xbox. Hiện tại tôi đã sử dụng xml vì không có thư viện mặc định nào được tạo riêng cho tác vụ đó :) – NewProger

5

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à:

  1. mở tập tin
  2. Thay đổi giá trị
  3. 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 ;-)

+1

Cảm ơn bạn đã trả lời, nhưng không ... các cài đặt này phải được lưu vào đĩa và đọc khi khởi động. Vì vậy, chương trình có thể nhớ ví dụ cho dù là trong toàn màn hình và vv. – NewProger