Content Factory:輔助 MonoGame 遊戲開發

Content Factory 是一款輔助 MonoGame 遊戲開發的工具。它提供素材管理的多項功能,包括編譯素材、編輯自定義數據等,並能同時應用多個遊戲平臺。數組

項目設置編輯器

選擇要建立遊戲項目的平臺,勾選「生成」,而後設置「項目目錄」(必須),有兩種方法設置:工具

一、直接生成素材到最終的遊戲目錄,這裏能夠設置遊戲程序所在目錄。這種方法適用Windows等PC平臺。spa

二、生成素材到遊戲項目目錄,這和MonoGame默認的方式相同,需設置遊戲項目來配合使用。這種方法適用全部平臺,而Android等移動平臺必須用這種方法:設計

a)假設新建遊戲項目TestGame,設置「項目目錄」爲遊戲項目文件所在目錄,即TestGame.csproj所在的目錄。3d

b)設置「遊戲項目」爲遊戲項目文件,即TestGame.csproj。code

c)在TestGame項目中刪除Content文件夾,全部素材管理都由本軟件來完成。xml

d)在添加、刪除素材,或更改素材或目錄名稱時,經過菜單「編輯-更新遊戲項目」(或工具欄上相應按鈕)來更新TestGame項目(須要先設置工具欄上的組合框,選擇要操做的遊戲平臺)。若是正在使用Visual Studio編輯TestGame項目,會彈出「檢測到文件修改」對話框,點擊「從新加載」便可同步素材項目(作這個軟件的時候是根據Windows平臺的項目來設計的,如今發現每一個平臺的項目文件的結構不同,方法二暫時不可用,用方法一而後在項目中手動更新素材):blog

素材管理遊戲

素材管理的功能都在菜單「編輯」下,包括編輯建立、導入、替換、刪除和生成功能,以及文件夾建立和刪除功能。

一、導入素材能夠選擇多個本地文件,對於不支持(找不到合適的導入程序)的文件類型會自動忽略。導入素材需先選擇一個目錄或素材,若是選擇目錄,導入的素材都將添加到該目錄下;若是選擇素材,導入的素材將添加到該素材同目錄下。

二、替換素材能夠從新選擇本地文件,保留素材的設置(名稱、壓縮和導入、處理程序),要求替換的文件是同類素材,好比都是圖像文件。

三、新建根目錄,是指建立一個和Content目錄同級的目錄,這裏Content目錄是新建項目後默認建立的根級目錄,這是爲了和Xna或MonoGame統一。

四、生成素材功能,須要先選擇要操做的遊戲平臺(工具欄上的組合框來設置),並選擇一個目錄或素材,若是選擇目錄,將對目錄下全部素材都執行生成操做,若是勾選工具欄上的「生成素材時包括子級素材」,將遍歷全部子級目錄。默認狀況下標記「已生成」的素材是不會執行生成操做,若是由於特殊緣由(好比生成的.xnb文件在資源管理器中被勿刪除)須要生成,能夠勾選工具欄上的「強制從新生成素材」。

五、任何本軟件管理的素材,都會監視其文件是否被修改,若是被其它軟件編輯,本軟件會將其標記爲「未生成」。同時還能夠經過雙擊素材(或經過菜單「編輯-編輯」)來打開系統默認的編輯器進行編輯。

自定義數據

Xna/MonoGame提供自定義類型的序列化,經過Xml文件來實現。假設定義一個英雄類,結構以下

 1 namespace TestGame
 2 {
 3     [Serializable]
 4     public class HeroData
 5     {
 6         public string Name { get; set; }
 7         public int Health { get; set; }
 8         public float Speed { get; set; }
 9         public float Power { get; set; }
10         public float Magic { get; set; }
11         public List<WeaponData> Weapons { get; set; }
12         public List<SpriteData> Sprites { get; set; }
13     }
14 
15     public class WeaponData
16     {
17         public string Name { get; set; }
18         public float Attack { get; set; }
19         public float Defense { get; set; }
20     }
21 
22     public class SpriteData
23     {
24         public string Name { get; set; }
25         public float Speed { get; set; }
26         public float Magic { get; set; }
27     }
28 }

注意:

一、須要在本軟件中編輯的類,必須添加「Serializable」特性。

二、不要使用數組類型屬性,本軟件的編輯器在編輯數組屬性時會出錯,可使用List類型來替代。

三、屬性應使用基礎類型,如:int、float、string以及枚舉等,不要用class屬性,由於本軟件沒法編輯類,建議改爲List,而後只添加一項。

編寫好後,從新生成TestGame項目,把生成的程序拷貝到本軟件的程序目錄,而後重啓軟件(軟件啓動時會自動搜索程序目錄裏全部的程序集)。經過菜單「編輯-建立自定義數據」(或工具欄相應按鈕)來建立該類型數據:

建立數據後,會要先保存到本地,並將該素材添加到當前選定的目錄。接下來會彈出數據編輯對話框(雙擊.xml類型的素材都會使用該編輯器進行編輯,而不是系統默認的Xml編輯器):

大部分操做和Visual Studio裏的屬性視圖相似。編輯完成後,經過菜單「文件-保存」,能夠生成後斷點看一下:

擴展素材管道

將程序集放到軟件目錄,軟件會自動查找導入、處理程序(還有上文提到的自定義類型)。

 

已經準備開源到Codeplex:https://contentfactory.codeplex.com/

相關文章
相關標籤/搜索