Актив не найден XNA - PullRequest
       33

Актив не найден XNA

2 голосов
/ 10 января 2011

Я очень новичок в XNA, и я начал с обучения, которое рисует изображение на экране.Мне удалось переместить мое изображение в папку «Содержимое», но когда я пытаюсь использовать его в своем коде, оно не может быть найдено.

Я использую имя актива и просто не могу найти, что я делаю неправильно.В учебниках используется XNA 3.0, а я использую Visual Studio 2010, но не уверен, имеет ли это значение.

Вот мой код

public class Game1 : Microsoft.Xna.Framework.Game
{
    Vector2 mPosition = new Vector2(0, 0);
    Texture2D mSpriteTexture;

    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;

    public Game1()
    {
        graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";
    }


    protected override void Initialize()
    {
        base.Initialize();
    }

    protected override void LoadContent()
    {
        spriteBatch = new SpriteBatch(GraphicsDevice);

        mSpriteTexture = Content.Load<Texture2D>("Face");
    }


    protected override void UnloadContent()
    {
    }

    protected override void Update(GameTime gameTime)
    {

        if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            this.Exit();


        base.Update(gameTime);
    }

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

        spriteBatch.Begin();
        spriteBatch.Draw(mSpriteTexture, mPosition, Color.White);
        spriteBatch.End();

        base.Draw(gameTime);
    }
}

}

Ошибка:"Исключение ContentLoadException было обработано. Файл не найден.

Обозреватель решений

Надеюсь, этой информации достаточно. Также имя файла моего файла - Face.

Заранее спасибо.

Ответы [ 4 ]

8 голосов
/ 10 января 2011

Если вы добавили свой файл в проект Content (они являются новыми для 4.0), нужно также проверить, является ли файл одним из поддерживаемых форматов для Texture2D (.jpg, .png,.BMP, .TGA).После этого нажмите на изображение и убедитесь, что имя актива правильное и соответствует точному регистру / орфографии, который вы используете в коде для загрузки его под этим именем.Если это правильно, также убедитесь, что Content Importer для изображения правильно установлен как Texture2D.И еще одна вещь, которую нужно проверить, это убедиться, что ваше изображение находится в корне проекта Content, а не в папке.Если он находится в папке, то при загрузке его необходимо указать имя (или имена) папки.

Если вы все это проверили, возможно, вам потребуется опубликовать изображение или пример проекта, чтобычто мы можем взглянуть и посмотреть, обнаружим ли мы что-нибудь таким образом.

На этом скриншоте выглядит, как будто вам нужно щелкнуть правой кнопкой мыши по проекту «Тест» и сказать «Добавить ссылку на контент».Затем вам нужно будет выбрать ваш проект «Test (Content)» в качестве этой ссылки.Это должно было произойти по умолчанию при создании этого нового игрового проекта, и я не уверен, почему он выглядит так, как будто он был удален.

3 голосов
/ 10 января 2011

Поскольку вы используете Visual Studio 2010, я предполагаю, что вы используете XNA 4.0.Если это так, то есть новый проект Content Reference, в который вы помещаете все свои текстуры, звуки, модели и т. Д.Если вы создали папку Content в проекте XNA Game, это не будет работать.

1 голос
/ 22 апреля 2013

В XNA 4.0 Проект Content Reference имеет свойство Корневой каталог содержимого (по умолчанию установлено Content ), в котором указано имя подкаталога, в котором будет храниться окончательные выходные файлы конвейерного контента, сгенерированные из папки проекта. Следовательно, если вы создадите каталог Content внутри Reference Content , проект Face будет помещен в каталог Content / Content , и вы получите загрузить это так

mSpriteTexture = Content.Load<Texture2D>(@"Content/Face");

несмотря на настройку Content.RootDirectory = "Content"

0 голосов
/ 20 марта 2016

Другое потенциальное решение:

Проверьте исходный файл (например, MyTexture.bmp) и убедитесь, что для Build Action установлено значение Компилировать .

Если для него установлено что-то другое, например, логически видимый Содержимое , оно не будет работать.

...