[英]Can't get content to load using Monogame with VS2012
我的代碼是
new GameFont(Content.Load<SpriteFont>("LoadingFont"), "LoadingFont")
根據我所讀到的,您必須使用VS2010將您的資產編譯為.xnb格式,我已經完成了,並將它們放入bin目錄中的Content子文件夾,我也做過。 但是,我收到錯誤消息“無法加載LoadingFont資產!”。
我不確定還能做什么。 我讀了一篇很老的帖子說使用XNA 4制作的資產不起作用,但我不知道是否仍然如此,或者如何將我的XNA版本更改為3.1。
有任何想法嗎? 也許沒有使用VS2010會有更好的方法嗎?
您是否已將內容添加到項目的“內容”文件夾中,並將“構建操作”設置為“內容”(在屬性窗口中)。
我不確定使用.xnb格式的資產的過程是什么。 我知道它可以這樣做但我通常只是將原始圖像和聲音文件直接添加到我的Content文件夾中。 盡管如此,Font可能會有點棘手。
編輯:2015年
自寫這個問題以來,很多事情都發生了變化。 如今,MonoGame擁有自己的Pipeline工具 ,可以將內容處理成XNB文件。 首先要嘗試的是使用新的Pipeline處理你的SpriteFont
。 這樣就可以避免完全依賴XNA。
或者,另一種解決MonoGame中字體問題的方法是使用BMFont工具將它們預渲染為紋理,並使用MonoGame.Extended在游戲中渲染它們。
一旦你安裝了MonoGame.Extended ,就可以加載使用BMFont創建的字體,就像使用SpriteFont
但是使用BitmapFont
類。
_bitmapFont = Content.Load<BitmapFont>("my-font");
然后像這樣渲染一些文字:
_spriteBatch.Begin();
_spriteBatch.DrawString(_bitmapFont, "Hello World", new Vector2(100, 200), Color.Red);
_spriteBatch.End();
我一直在VS2012中使用MonoGame而沒有遇到麻煩; Content.Load<T>("myContent")
仍適用於我。 最近一直困擾我的一件事(提示:在睡眠不足時不編碼)是你必須在解決方案資源管理器中檢查你的資產是否設置為“復制到輸出目錄”,否則當游戲構建時,資產不會與它一起使用,這就是你得到錯誤的原因 - 它無法加載那些不存在的東西! 右鍵單擊您的資產,然后在“屬性”下查找。 如果他們被設置為“不要復制”,那么你會想要改變它。
就像@craftworkgames一樣,我不能給你一個完整的答案。 但XNA 3.1附帶的傳統內容管道已經進入4中。因此任何資產都需要加載略有不同的方式。 例如,要加載.png資源以顯示精靈,我會執行以下操作:
rock = Texture2D.FromStream(GraphicsDevice, TitleContainer.OpenStream(@"Rock-Large-Stones-PT.png"));
並正常將.png文件添加到解決方案中。 我很確定它會是類似於字體的東西,但我還沒有完全弄明白;)
我有同樣的問題,不確定你是否解決了,但這是我做的。
單擊“Content”文件夾下的Monogame Content Pipeline。
添加你的spritefont或紋理。
確保在Monogame Content Pipeline中將操作從“Build”更改為“Copy”
然后當你想簡單地加載內容時; texture = content.Load(“texture.png”);
希望這可以幫助 :)
我有類似的問題,但“Windows 8商店”作為目標平台......雖然Windows Open GL版本的一切都很好。 在Windows 8上,當我嘗試content.Load(“Fonts / TestFont”)時,我收到“無法作為非內容文件加載”。
我使用MonoGame.Windows8項目替換了我的解決方案中的MonoGame DLL(我從CodePlex下載了源代碼)並進行了一些調試...並發現MonoGame在bin ... \\ Debug \\ AppX文件夾中查找Content文件夾...在構建期間,Content文件夾被復制到不同的位置。 因此,當我手動將Content文件夾復制到AppX文件夾時,錯誤已經消失,我的游戲原型現在正常工作。
我想我或者錯過了與AppX相關的項目首選項中的一些設置(可能是Windows 8設備模擬器需要這個文件夾?)或者...... MonoGame應該在不同的地方尋找內容文件夾...無論如何我會更新現在手動編輯內容文件夾,因為它在編譯期間被復制到錯誤的位置。
我的項目中有Content文件夾並且構建操作設置正確(內容)...並且選擇了'復制始終'但在構建(compliation)期間將Content文件夾復制到Debug文件夾,同時應將其復制到Debug \\ AppX文件夾,否則MonoGame找不到它。 (我可能錯誤的確切路徑,因為我目前正在工作,問題出在我的家用電腦)
也許這只是我的Visual Studio 2012中的一些配置問題。
希望這些信息有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.