2011-12-28 2 views
1

Может ли кто-нибудь еще сделать и скомпилировать эту программу (Click here) до первой «быстрой сборки» ..? (Вплоть до того момента, когда они говорят: «Было бы замечательно провести время ! быстро строить ")XNA Windows Game (4.0) ContentLoadException

по некоторым причинам я получаю это исключение

Я проверил все упомянутые в этом решении StackOverflow: Click Here, но ни один из них не решить мою проблему :(

мое изображение помещается в область содержимого. Он не находится в папке.

Пожалуйста, помогите!

вот что мой код выглядит следующим образом:

namespace myGame 
{ 

    public class Game1 : Microsoft.Xna.Framework.Game 
    { 
     GraphicsDeviceManager graphics; 
     SpriteBatch spriteBatch; 

     SpriteBatch mBatch; 
     Texture2D mHealthBar; 

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





     protected override void Initialize() 
     { 
      // TODO: Add your initialization logic here 

      base.Initialize(); 
     } 





     protected override void LoadContent() 
     { 

      spriteBatch = new SpriteBatch(GraphicsDevice); 

      // TODO: use this.Content to load your game content here 
      mBatch = new SpriteBatch(this.graphics.GraphicsDevice); 
      ContentManager aLoader = new ContentManager(this.Services); 

      **//ERROR occurs here!** 
      mHealthBar = aLoader.Load<Texture2D>("HealthBar") as Texture2D; 
     } 




     protected override void UnloadContent() 
     { 
      // TODO: Unload any non ContentManager content here 
     } 




     protected override void Update(GameTime gameTime) 
     { 
      // Allows the game to exit 
      if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) 
       this.Exit(); 

      // TODO: Add your update logic here 

      base.Update(gameTime); 
     } 





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

      // TODO: Add your drawing code here 
      mBatch.Begin(); 
      mBatch.Draw(mHealthBar, new Rectangle(this.Window.ClientBounds.Width/2 - mHealthBar.Width/2, 

       30, mHealthBar.Width, 44), new Rectangle(0, 45, mHealthBar.Width, 44), Color.Red); 


      //Draw the box around the health bar 
      mBatch.Draw(mHealthBar, new Rectangle(this.Window.ClientBounds.Width/2 - mHealthBar.Width/2, 
        30, mHealthBar.Width, 44), new Rectangle(0, 0, mHealthBar.Width, 44), Color.White); 
      mBatch.End(); 
      base.Draw(gameTime); 
     } 
    } 
} 
+0

Ваша проблема * может быть в том, что вы создаете свой собственный ContentManager. Попробуйте использовать: this.Content.Load («HealthBar») – GGulati

+0

Я попытался это сделать, но это не исправить проблему ... спасибо anyways – BigBug

+0

Если вы используете свой собственный ContentManager, вы должны установить для свойства RootDirectory значение " Content ", а также, если у вас есть другая папка, вы можете установить ее. – annonymously

ответ

1

Если вы внимательно следили за учебником, вы добавили изображение в игровой проект вместо проекта содержания. Это результат использования значительно устаревшего учебника (1.0 по сравнению с текущим 4.0)

Щелкните правой кнопкой мыши на Content Project, добавьте существующий файл и добавьте изображение.

В качестве примечания, я ДАЛЕКО предлагаю вам Файл> Создать и сделать учебники на http://www.riemers.net/ Есть слишком много кода нарушения изменяется от 1,0 до 4,0, чтобы даже попытаться сделать 1.0 учебник.

+0

Привет, нет, я добавил его в проект Content, а не в проект игры ... спасибо в любом случае .. – BigBug

+0

Также, спасибо за ссылку. Я обязательно проверю это. – BigBug

0

Если вы хотите использовать свой собственный каталог Content Manager, вам нужно создать содержание проекта и установить его корневой каталог в свойствах все, что вы хотите, от VS. Это изменит целевой каталог для скомпилированных активов из содержимого по умолчанию на все, что вы выбрали. Вы также можете прямо установить это значение в проекте по умолчанию по умолчанию.

Затем, создавая свой собственный, укажите Корневой каталог и загрузите его как обычно, с относительным путем. Он будет искать их в выбранном вами корне.

+0

Спасибо за ваш ответ, не совсем то, что я искал. Но спасибо в любом случае – BigBug

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