0

まず、これはContent.RootDirectory="Content"ではないことを述べておきます。問題。私はそのコード行がある場合とない場合でこれを試しました。3つの辞書を持つFileFactoryというクラスがあります。1つはテクスチャ用、もう1つはサウンド用、もう1つはスプライトフォント用です。他のタイプのオブジェクトのXMLファイルをロードする他のファクトリもあり、それらは完全に機能します。フォントをロードするコードは次のとおりです。

        public static void LoadFonts(ContentManager content)
    {
        string[] filePaths = Directory.GetFiles(@"Content\fonts\");
        string key;

        foreach (string s in filePaths)
        {
            key = Path.GetFileNameWithoutExtension(s);
            Fonts.Add(key, content.Load<SpriteFont>(s));
        }
    }

エラーは次のとおりです。「"Content\ fonts\ammoFont.xnb"の読み込み中にエラーが発生しました。ファイルが見つかりません。」ファイルが文字列としてfilePaths配列に追加されるディレクトリにある必要があることを考えると、ファイルは明らかにそこにあります。私もフォルダをチェックしました、そしてそれはそこにあります。完全なエラーは次のとおりです。

Microsoft.Xna.Framework.Content.ContentLoadExceptionが未処理でした
Message="Content \ fonts\ammoFont.xnb"の読み込み中にエラーが発生しました。ファイルが見つかりません。
\ Users \ Chris \ Documents \ Visual Studio 2010 \ Projects \ WindowsGame1 \ WindowsGame1 \ WindowsGame1 \ Game.cs:line 102 at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)at Microsoft.Xna.Framework.Game.Run( )at WindowsGame1.Program.Main(String [] args)in C:\ Users \ Chris \ Documents \ Visual Studio 2010 \ Projects \ WindowsGame1 \ WindowsGame1 \ WindowsGame1 \ Program.cs:line 15 InnerException:System.IO.FileNotFoundException Message = 「Content\Content \ fonts\ammoFont.xnb.xnb」の読み込み中にエラーが発生しました。ファイルが見つかりません。Source = Microsoft.Xna.Framework StackTrace:at Microsoft.Xna.Framework.TitleContainer.OpenStream(String name)at Microsoft.Xna.Framework.Content.ContentManager.OpenStream(String AssetName)InnerException:

回答:このコードを変更してください:

Fonts.Add(key, content.Load<SpriteFont>(s));

これに:

Fonts.Add(key, content.Load<SpriteFont>("fonts\\" + key));
4

2 に答える 2

0

例外メッセージから、呼び出し元の文字列が間違っているように見えます。コンテンツは2回あり、拡張機能は2回あります。

Error loading "Content\Content\fonts\ammoFont.xnb.xnb"

配列を初期化するコードを投稿しませんでしたが、定義に含まれている場合は削除してください。

于 2013-02-09T02:23:20.000 に答える
0

ゲームコンテンツパスは、Content.RootFolder(デフォルトでは「コンテンツ」)からの相対パスである必要があり、ファイル拡張子を含めることはできません(したがって、拡張子が異なる場合でも、ファイル名の重複は避けてください)。

于 2013-02-09T00:52:06.543 に答える