2011-01-10 3 views
2

Я очень новичок в XNA, и я начал с изучения учебника, который рисует изображение на экране. Мне удалось перенести изображение в папку «Содержимое», но когда я пытаюсь использовать его в своем коде, его невозможно найти.Активы не найдены 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 был Unhandled. Файл не найден.

Solution Explorer

Я надеюсь, что это достаточно информации. Кроме того, имя актива моего файла - Лицо.

Спасибо заранее.

ответ

8

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

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

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

+0

Я разместил ссылку на решение explorer, у меня нет репутации для отправки изображений, поэтому я надеюсь, что все в порядке. Насколько я могу судить, я сделал все, как вы предложили, и до сих пор не повезло. – Foxvog

+0

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

+0

В этом была проблема, я не уверен, почему так было. Спасибо тонну за ответ и учебники! – Foxvog

3

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

+0

Мой проект называется Test. Я помещал файл в «TestContent (Content)», который был создан вместе с проектом. Это верно? – Foxvog

+0

Да, это правильно. Убедитесь, что файл 'Face' установлен в качестве текстуры в проекте' Content Reference'. –

1

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

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

несмотря на установление Content.RootDirectory = "Content"

0

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

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

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

Смежные вопросы