2011-05-25 53 views
2

我目前正在開發一款註定要提交給XBLIG的遊戲。什麼是「建議」的方式來將外部數據加載到XNA4.0遊戲?

我的問題很簡單,我想知道哪個「建議」的方式來通過外部XML文件加載數據。

我至少需要這個開發(在電腦上),這樣遊戲設計師可以在不需要重建的情況下玩遊戲變量。

在xna3.1中,我使用了不再適用於xna4.0的IntermediateSerializer。

我可能會創建一個用於裝運的內容管道擴展,除非有人可以提出一個在PC和XBox上都可以使用的驚人答案! :d

感謝,

+1

可能想問一下:http://gamedev.stackexchange.com/ :) – 2011-05-25 16:02:02

+0

我認爲內容管道僅在安裝遊戲工作室時可用;只是要注意的事情。 – 2011-05-25 21:44:14

回答

2

嗯,首先,IntermediateSerializer確實exist in XNA 4.0

然而,XNA 4.0從面向.NET 2.0框架靶向.NET 4.0框架,它有兩種形式改變。 XNA運行時程序集針對的是緊湊框架,但內容管道程序集針對整個框架。您需要進入您的項目屬性並更改目標框架以允許您使用IntermediateSerializer

此外,內容管道在Xbox 360上,不可既不是它適用於Windows,而不安裝了完整的XNA遊戲工作室。這意味着您在Xbox 360 上運行時無法使用InterpediateSerializer在Windows上進行發佈(適用於XNA 3.1和4.0)。

所以如果你想在運行時使用它,在開發過程中,解決方案是在Windows上爲你的項目添加一個特定的開發目標。給它一個#ifdef DEVELOPMENT的預處理器定義來包裝你的代碼,使目標(更龐大)完整的.NET 4.0框架,並添加一個程序集引用Microsoft.Xna.Framework.Content.Pipeline(其中IntermediateSerializer住)。我會留下計算出條件框架目標和程序集引用作爲你研究的東西 - 我很確定它需要手動編輯項目文件,或者你可以創建並維護一個新的項目文件並行)

所以所有的葉子都是在你的發行版本中做什麼的問題,你在哪裏不要IntermediateSerializer

那就是非常容易:你可以拖動你的XML文件到你的內容項目中。默認的內容管道XML導入器將採用您的XML,通過IntermediateSerializer爲您運行,創建XNB文件。然後,您可以通過ContentManager在運行時將該文件作爲內容加載。(see also

(而不是在加載代碼中粘貼一堆條件,我建議通常在加載時使用此方法,然後僅使用IntermediateSerializer方法來「重新加載XML」代碼路徑。)

+0

感謝您的好評! 在以前的xna3.1版本中,我只是提供了IntermediateSerializer dll的發行版(在windows上)以使其工作。我今晚可以嘗試一下,非常感謝! – 3nixios 2011-05-26 07:49:42

+2

@ 3nixios這是違反了XNA許可協議,不這樣做...... – MattDavey 2011-05-26 08:05:47

+1

哎呀,謝謝你:)它只是內部分發anyhoo ^^ – 3nixios 2011-05-26 08:38:48

相關問題