2012-01-24 129 views
5

什麼是讀寫類遊戲配置最簡單的方法:是否顯示fps或播放聲音等遊戲配置和XNA

也許有在XNA一些類,它可以被用來做?

我真的不希望使用默認的C#XML啄的XNA遊戲。

+1

如果你想讀**和**寫(在運行時),最簡單的方法是使用「默認的C#XML啄」。查找讀/寫XML。這真的不錯。 –

+0

可能是這可以幫助你 http://gamedev.stackexchange.com/questions/11306/configuration-management-in-xna –

+0

呀,讀,寫。但是,xbox呢?我想潛在地也能夠將這個遊戲移植到Xbox。在xbox上運行遊戲時,是否可以讀取/寫入xml? – NewProger

回答

1

既然你提到,你可能想移植到XBOX,我建議使用一個名爲EasyStorage庫。這是很多人在做簡單的閱讀/寫作時使用的。

它有讓玩家選擇自己的存儲設備(如果有一個以上的話),並與東西,如玩家試圖挽救之前移除存儲設備交易等,這會給你一個流,以節省/負荷,所以大部分實際的保存/加載代碼都是相同的。

+0

不幸的是,這並不是我一直在尋找的東西,但是如果我真的會爲xbox進行部署,這是不錯的選擇。現在我使用了xml,因爲默認庫中沒有專門用於該任務的東西:) – NewProger

5

我想提出一個更簡單的答案。我假設這些配置更改僅用於在開發過程中進行測試嗎?那麼,爲什麼不能簡單地與您設置的靜態類:

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

這樣,您就不必寫任何代碼從磁盤讀取的值。所有你需要做的就是像if (Debugging.ShowFPS)。除了設置靜態字段(Debugging.ShowFPS = false;)之外,您也不必編寫任何代碼來更改運行時的值。

想想看,如果你保存你的價值觀,譬如說,一個XML文件,您的工作流程將是:

  1. 打開文件
  2. 變化值
  3. 按F5運行的遊戲改變後的值

工作流程完全一樣,增加的好處是你不必編寫任何代碼來處理讀寫操作。它也適用於所有支持的平臺上絕對沒有變化。如果你想成爲100%確保您不要忘記釋放之前更改設置,你可以使用一個簡單的ifdef用正確的價值觀生產:

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 
    } 

有時候,最好的答案是最簡單的;-)

+1

感謝您的回覆,但是沒有...這些設置必須保存到磁盤並在啓動時讀取。所以程序可以記住例如是否在全屏等等。 – NewProger