2012-01-09 34 views
0

我在XNA 4.0中製作了一個應該模擬裝配線過程的程序。代表裝配線的模型非常簡單,它包含5個「檢查點」 - 開始,結束和3個工作站 - 代表將某些傳感器放置在現實生活模型上的位置。當一個對象通過這些檢查點時,應該觸發某個方法(如「開始」,「停止」或「計數」)。我設法通過對這些「檢查點」的座標進行硬編碼(因爲這些「檢查點」位置不會改變,不需要一些先進的碰撞檢測),並在需要時觸發適當的方法。現在,我想創造一些額外的可能性,這將使我的程序更加靈活。我希望能夠啓用/禁用這些「檢查點」 - 啓用時,傳遞對象將觸發綁定到相應「檢查點」的方法,並且禁用時,對象將傳遞而不觸發任何方法(通過「I」 ,我的意思是程序員,而不是用戶,用戶不應該能夠改變任何「檢查點」的任何屬性)。我做了一些研究,我認爲最好的方法是使用一個XML文件,其中包含有關每個「檢查點」的信息。我有幾個關於這方面的問題 - 首先,我從來沒有從XML文件加載到XNA程序,所以如果你可以指向我的一些教程或以前的帖子,涵蓋了這一點(我不知道它是否有任何區別,但這些文件將被標準化 - 它們將具有相同數量的標籤,包含相同數量的信息),其次,這是甚至解決這個問題的正確方法,或者您對如何做到這一點有一些建議。該應用程序將僅用於個人電腦,因此我不必考慮跨平臺限制。 感謝在XNA 4.0中使用XML文件

回答

0

這裏是一個博客張貼關於使用內容管道從XML加載的對象:

http://www.jamesewelch.com/2008/04/17/how-to-use-xnacontent-xml-files/

你可以做一個設置類或東西來保存數據,或只使用一個List<Checkpoint>。在XNAContent,列表定義,像這樣:

<Asset Type="System.Collections.Generic.List<*YourNamespaceNameHere*.Checkpoint>"> 

    <Item> 
     Put your data here 
    </Item> 
    <Item>... 

</Asset> 

編輯:這裏是一步一步的指示:

  1. 創建一個內容管道擴建工程

  2. 創建一個新的類庫項目

  3. 在Windows遊戲項目中添加對類庫的引用

  4. 在內容項目

  5. 添加到內容管道擴建工程的引用按照所給的教程(遊戲庫類意味着你之前創建的類庫,還是遊戲項目本身。 )

+0

嗯,我不明白他是什麼意思的內容管道項目和什麼由遊戲庫項目(本教程是系列的一部分)。同樣在我的XML文件中,如果我使用我的類作爲資產類型,編譯器向我顯示錯誤「MyApp.MyClass是未知類型」,如果我嘗試使用類似「System.String」的東西(這對我的工作很好需要)錯誤是「反序列化中間XML時出錯」。元素'是無效的XMLNodeType ....「。你知道一些教程,可能會告訴我每一步解決這個問題(我從來沒有用XML文件工作,而不是XNA不用C#) – NDraskovic 2012-01-12 10:48:11

+0

我現在編輯了我的答案,我建議你使用設置類有一個列表或字符串數​​組,而不是實際指定''你會做''或類似的東西 – annonymously 2012-01-13 12:02:57