6

私は何日もこの問題と戦ってきましたが、ネットを閲覧していますが、何も解決できませんでした: Visual Studio 2012 で MonoGame アプリケーションを作成していますが、テクスチャを読み込もうとすると、次の問題が発生します。

Menu/btnPlay アセットを読み込めませんでした!

コンテンツ ディレクトリを設定しました: Content.RootDirectory = "Assets"; また、ファイル btnPlay.png にはプロパティが設定されています: Build Action: Content および Copy to Output directory: Copy if newer.

私のコンストラクターと LoadContent 関数は完全に空ですが、自分で見てください:

public WizardGame()
{
    Window.Title = "Just another Wizard game";

    _graphics = new GraphicsDeviceManager(this);

    Content.RootDirectory = "Assets";
}

protected override void LoadContent()
{
    // Create a new SpriteBatch, which can be used to draw textures.
    _spriteBatch = new SpriteBatch(GraphicsDevice);

    Texture2D texture = Content.Load<Texture2D>("Menu/btnPlay");

    _graphics.IsFullScreen = true;
    _graphics.ApplyChanges();
}

どんな助けでも嬉しいです!私はその問題について完全に必死です....

4

1 に答える 1

6

VS2012 では、Windows 8 64 ビットおよび最新のモノゲーム (3.0.1):

  • Assetsという名前のサブフォルダーを作成します
  • [出力へのコピー] を [コピーしない] 以外に設定します
  • ロード時にアセットをテクスチャ パスの先頭に追加する

ここに画像の説明を入力

namespace GameName2
{
    public class Game1 : Game
    {
        private Texture2D _texture2D;
        private GraphicsDeviceManager graphics;
        private SpriteBatch spriteBatch;

        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // TODO: use this.Content to load your game content here
            _texture2D = Content.Load<Texture2D>("assets/snap0009");
        }

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            // TODO: Add your drawing code here
            spriteBatch.Begin();
            spriteBatch.Draw(_texture2D, Vector2.Zero, Color.White);
            spriteBatch.End();
            base.Draw(gameTime);
        }
    }
}

ここにあなたのテクスチャが描かれています:D

ここに画像の説明を入力

ノート:

便宜上、コンテンツのルート ディレクトリが指している元の値 : を保持しましたContent

Assetsただし、パスで直接指定することもできます。

Content.RootDirectory = @"Content\Assets";

Assets次に、パスに追加せずにテクスチャをロードします。

_texture2D = Content.Load<Texture2D>("snap0009");
于 2013-11-10T18:54:29.933 に答える