Asset non trovato XNA

Sono molto nuovo a XNA e ho iniziato seguendo un tutorial che disegna un’immagine sullo schermo. Sono stato in grado di spostare la mia immagine nella cartella Contenuto ma quando provo ad usarla nel mio codice, non è ansible trovarla.

Sto usando il nome dell’asset e non riesco a trovare quello che sto facendo male. Le esercitazioni utilizzano XNA 3.0 e sto utilizzando Visual Studio 2010, non sono sicuro che ciò sia importante o meno.

Ecco il mio codice

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("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); } } 

}

L’errore riporta “ContentLoadException was Unhandled. File non trovato.

Esploratore di soluzioni

Spero che questa informazione sia sufficiente. Anche il nome dell’asset del mio file è Face.

Grazie in anticipo.

Se hai aggiunto il tuo file al progetto Content (quelli sono nuovi per 4.0), le altre cose da controllare sarebbe assicurarsi che il file sia uno dei formati supportati per Texture2D (.jpg, .png, .bmp,. tga). Dopodiché, fai clic sull’immagine e verifica che il nome dell’asset sia corretto e che corrisponda all’incanvasiatura / ortografia esatta che stai usando nel codice per caricarlo con quel nome. Se ciò è corretto, assicurati anche che Importa contenuto per l’immagine sia impostato correttamente per Texture2D. E poi un’altra cosa da verificare sarebbe assicurarsi che l’immagine sia nella radice del progetto Contenuto e non in una cartella. Se è presente in una cartella, è necessario includere il nome della cartella (oi nomi) durante il caricamento.

Se hai verificato tutto questo allora potresti aver bisogno di pubblicare un’immagine o un progetto di esempio in modo che possiamo dare un’occhiata e vedere se vediamo qualcosa in quel modo.

Da quello screenshot sembra che sia necessario fare clic con il tasto destro del mouse sul progetto “Test” e dire “Aggiungi riferimento al contenuto”. Dovrai quindi scegliere il tuo progetto “Test (Contenuto)” come riferimento. Questo dovrebbe essere successo di default quando hai creato questo nuovo progetto di gioco e non sono sicuro del motivo per cui sembra che sia stato rimosso.

Poiché si utilizza Visual Studio 2010, suppongo che si stia utilizzando XNA 4.0. Se questo è il caso, c’è un nuovo progetto di Content Reference cui metti tutte le tue trame, suoni, modelli, ecc. Se hai creato una cartella Content nel progetto XNA Game , questo non funzionerà.

Nel progetto di riferimento del contenuto XNA 4.0 è presente una proprietà Directory radice contenuto (impostata su Contenuto per impostazione predefinita) che specifica il nome della sottodirectory che conterrà i file di output finali del contenuto della pipeline generato dalla cartella del progetto. Pertanto, se crei la directory Content all’interno del progetto Content Reference , l’asset Face verrà inserito nella directory Content / Content e dovrai caricarlo in questo modo

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

nonostante l’impostazione Content.RootDirectory = "Content"

Un’altra potenziale soluzione:

Controlla il tuo file originale (es. MyTexture.bmp ) e assicurati che Build Action sia impostato su Compile .

Se lo hai impostato su qualcos’altro, come ad esempio il contenuto apparentemente logico, non funzionerà.