2012-06-18 48 views
1

我使用Mono For Android和MonoGame將一個簡單的類tetris XNA應用程序移植到Android;我遵循this link中的建議步驟,到目前爲止,所有內容編譯良好,並且沒有相關警告。但是,在加載內容,一個空的參數異常的點突破下面的程序在我的計劃:如何將SpriteFont導入MonoGame

protected override void LoadContent() { 
    // ... 
    _font = Content.Load<Microsoft.Xna.Framework.Graphics.SpriteFont>("SpriteFont1"); 
    // ... 
} 

內容的根目錄是在遊戲中構造類設置:

public Game2(){ 
Content.RootDirectory = "Content"; 
Content.RootDirectory = "Assets/Content"; // TEST. 
//...} 

我嘗試過幾種組合,都無濟於事。

我也嘗試在Build Action屬性中將xnb文件設置爲內​​容以及Android資產;具有鏈接,複製始終,僅複製是否有更新...等

無論哪種方式,我的問題是,我真的不明白爲什麼如何應該這樣做。我對平臺和XNA都很陌生,所以這可能是一個新手問題,但事實是在幾個小時後,我的頭和拳頭對着顯示器/鍵盤,我感覺卡住了,需要你的幫助。

回答

0

MonoGame(2.5.1)在ContentManager.Load中爲SpriteFont類型拋出NotImplementedException異常。有同樣的問題沒有解決。我試圖不使用DrawString。

對於裝載紋理的Win32應用程序使用:

Content.RootDirectory = @"../../Content"; 
var sampleTexture = Content.Load<Texture2D>("Sample.png"); 

你甚至不能將它添加到解決方案。

對於Andoind(MonoDroid)應用程序,您必須將「Content」文件夾添加到您的解決方案中,並在「Sample.png」屬性中設置「Andtoid Asset」。

Content.RootDirectory = "Content"; 
var sampleTexture = Content.Load<Texture2D>("Sample.png"); 

參見:

http://monogame.codeplex.com/discussions/360468

http://monogame.codeplex.com/discussions/267900

0

我具有支持上MonoGame可變寬度的字體(由BMFont生成)一個library。不幸的是它是一個渲染器,其他代碼也是如此。但是,基本思想非常簡單。你可以看看這裏的loader和網格生成器(給出一個字符串)here。該構建器還支持跨多個頁面傳播字符的字體。

希望這會有所幫助!