1

Mono For Android と MonoGame を使用して、単純なテトリスのような XNA アプリを Android に移植しています。このリンクで提案されている手順に従っていますが、これまでのところ、すべてが正常にコンパイルされ、関連する警告は発生しません。ただし、コンテンツをロードすると、null パラメーター例外により、プログラムの以下のポイントでプログラムが中断されます。

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 ファイルを Content および Android Assets として設定することも試みました。リンクされている、常にコピーされている、新しい場合にのみコピーされている...など。

いずれにせよ、私の問題は、 なぜどのようにこれを行うべきかを本当に理解していないことです。私はプラットフォームと XNA にかなり慣れていないので、これは初心者の質問かもしれませんが、実際には、モニター/キーボードに頭と拳を数時間ぶつけた後、行き詰まりを感じ、助けが必要です。

4

2 に答える 2

0

MonoGameで可変幅フォント(BMFontによって生成された)をサポートするライブラリがあります。残念ながら、それはレンダラーであり、その周りに他のコードがあります。ただし、基本的な考え方は非常に単純です。ここでローダーを、ここでメッシュビルダー(文字列を指定)を確認できます。このビルダーは、文字を複数のページに分散させるフォントもサポートしています。

お役に立てれば!

于 2012-06-21T13:21:33.297 に答える
0

MonoGame (2.5.1) は、SpriteFont タイプの ContentManager.Load で 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

于 2012-06-21T11:28:31.110 に答える