2011-01-10 8 views
2

Ich bin sehr neu zu XNA und ich begann, indem ich ein Tutorial folgte, das ein Bild auf dem Bildschirm zeichnet. Ich konnte mein Bild in den Inhaltsordner verschieben, aber wenn ich versuche, es in meinem Code zu verwenden, kann es nicht gefunden werden.Asset nicht gefunden XNA

Ich benutze den Asset-Namen und ich kann einfach nicht finden, was ich falsch mache. Die Lernprogramme verwenden XNA 3.0 und ich verwende Visual Studio 2010, nicht sicher, ob das wichtig ist oder nicht.

Hier ist mein Code

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

}

Der Fehler lautet: „ContentLoadException wurde nicht behandelt. Datei nicht gefunden.

Solution Explorer

Ich hoffe, dass diese genügend Informationen. Auch die Der Objektname meiner Datei lautet "Gesicht".

Vielen Dank im Voraus.

Antwort

8

Wenn Sie Ihre Datei dem Content-Projekt hinzugefügt haben (die sind neu für 4.0), müssen Sie sicherstellen, dass die Datei eines der unterstützten Formate für Texture2D (.jpg, .png, .bmp, .tga). Danach klicken Sie auf das Bild und vergewissern Sie sich, dass der Asset-Name korrekt ist und die genaue Umrandung/Schreibweise entspricht, die Sie in Code verwenden, um ihn unter diesem Namen zu laden. Wenn das korrekt ist, stellen Sie sicher, dass der Content Importer für das Bild korrekt als Texture2D eingestellt ist. Und noch etwas zu überprüfen wäre, um sicherzustellen, dass das Bild im Stamm des Content-Projekts und nicht in einem Ordner ist. Wenn Sie es in einem Ordner haben, müssen Sie beim Laden den Ordnernamen (oder die Namen) angeben.

Wenn Sie dies alles überprüft haben, müssen Sie möglicherweise ein Bild oder ein Beispielprojekt veröffentlichen, damit wir einen Blick darauf werfen können, ob wir etwas auf diese Weise entdecken.

Aus diesem Screenshot sieht es so aus, als müssten Sie mit der rechten Maustaste auf das Projekt "Test" klicken und "Inhaltsreferenz hinzufügen" sagen. Sie müssen dann Ihr "Test (Content)" - Projekt als Referenz auswählen. Das sollte standardmäßig geschehen sein, als du dieses neue Spielprojekt erstellt hast und ich bin mir nicht sicher, warum es aussieht, als wäre es entfernt worden.

+0

Ich habe einen Link des Lösungs-Explorers gepostet, ich habe nicht den Rep, um Bilder zu posten, also hoffe ich, dass das in Ordnung ist. Soweit ich das beurteilen kann, habe ich alles gemacht, was Sie vorgeschlagen haben und immer noch kein Glück. – Foxvog

+0

Aus diesem Screenshot sieht es so aus, als müssten Sie mit der rechten Maustaste auf das "Test" -Projekt klicken und "Inhaltsreferenz hinzufügen" sagen. Sie müssen dann Ihr "Test (Content)" - Projekt als Referenz auswählen. Das sollte standardmäßig geschehen sein, als du dieses neue Spielprojekt erstellt hast und ich bin mir nicht sicher, warum es aussieht, als wäre es entfernt worden. –

+0

Das war das Problem, ich bin mir nicht sicher, warum es so war. Vielen Dank für die Antwort und die Tutorials! – Foxvog

3

Da Sie Visual Studio 2010 verwenden, vermute ich, dass Sie XNA 4.0 verwenden. Wenn dies der Fall ist, gibt es ein neues Content Reference Projekt, in das Sie all Ihre Texturen, Sounds, Modelle usw. einfügen. Wenn Sie im Projekt XNA Game einen Ordner Content erstellt haben, funktioniert dies nicht.

+0

Mein Projekt heißt Test. Ich habe die Datei in den "TestContent (Content)" gestellt, der mit dem Projekt erstellt wurde. Ist das richtig? – Foxvog

+0

Ja, das ist richtig. Stellen Sie sicher, dass die Datei 'Face' im Projekt' Content Reference' als Textur eingestellt ist. –

1

In XNA 4.0 Inhalt Referenzprojekt hat eine Inhalt Root Directory Eigenschaft (auf Inhalt Standardeinstellung), der den Namen des Unterverzeichnisses angibt, das die endgültigen Ausgabedateien von Pipeline-Inhalt aus dem Projekt halten wird Mappe.Deshalb, wenn Sie erstellen Inhalt Verzeichnis innerhalb Inhalt Referenz Projekt der Gesicht Asset Content/Inhalt Verzeichnis in platziert werden und Sie werden es laden müssen wie diese

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

trotz Einstellung Content.RootDirectory = "Content"

0

Eine andere mögliche Lösung:

Überprüfen Sie Ihre Originaldatei (z. B. MyTexture.bmp) und stellen Sie sicher, dass die Erstellungsaktion auf festgelegt ist Kompilieren Sie.

Wenn Sie es auf etwas anderes eingestellt haben, z. B. den logisch erscheinenden Inhalt, wird es nicht funktionieren.