Creare Videogiochi - Game Developer
Problema XNA e C# - Versione stampabile

+- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi)
+-- Forum: Programmazione (https://www.making-videogames.net/giochi/Forum-Programmazione)
+--- Forum: Programmazione in C C++ e C# (https://www.making-videogames.net/giochi/Forum-Programmazione-in-C-C-e-C)
+--- Discussione: Problema XNA e C# (/thread-Problema-XNA-e-C)



Problema XNA e C# - Loryea - 19-07-2012

Ho un problema con C# e XNA, non riesco a caricare un'immagine come sfondo. Ho pensato di caricare l'immagine di un folletto che nella raccolta immagini, ed il file si chiama proprio "folletto".
Ho provato con il seguente codice:

Codice:
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace XNA
{

    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        Texture2D imm_folletto;
        Vector2 posizione;

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


        protected override void Initialize()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);
            posizione = new Vector2(0f, 0f);

            base.Initialize();
        }


        protected override void LoadContent()
        {
            imm_folletto = Content.Load<Texture2D>("Immagini/folletto");
        }


        protected override void UnloadContent()
        {

        }


        protected override void Update(GameTime gameTime)
        {

            base.Update(gameTime);
        }


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

            spriteBatch.Begin();
            spriteBatch.Draw(imm_folletto, posizione, Color.White);
            spriteBatch.End();

            base.Draw(gameTime);
        }
    }
}

(il codice non è finito, c'è la barra a destra per scorrere e vederlo interamente).
Ma non capisco perchè non funziona. Alla compilazione l'ide non segnala errori ne avvisi ("warning"), ma dopo averci messo un bel po' a caricare, compare evidenziata la riga:

Codice:
imm_folletto = Content.Load<Texture2D>("Immagini/folletto");

in giallo, con affianco una vignetta riguardante la riga con scritto:

" ContentLoadException non è stata gestita
Error loading "Immagini\folletto". File not found.
Suggerimenti per la risoluzione dei problemi:
Visulaizzare la guida generale per le eccezioni.
InnerException: Verificare che il file esista nel percorso specificato.
InnerException: Quando si utilizzano i percorsi relativi, accertarsi che la directory corrente sia corretta.
Visualizzare la guida generale per l'eccezione interna.
Cerca ulteriori informazioni nella Guida...

Azioni:
Visualizza dettagli...
Copia dettaglio eccezione negli appunti
"


Le cose sottolineate sarebbero i link.
Che errore ho fatto?
Se può essere rilevante vi posso dire che uso Windows 7, con l'IDE Visual C# 2010 Express.
Scusatemi per il post così lungo.
Grazie.


RE: Problema XNA e C# - Skyline - 19-07-2012

Dice che non ha trovato file, quindi quasi sicuramente hai inserito un percorso sbagliato.


RE: Problema XNA e C# - Loryea - 19-07-2012

Ma quindi il percorso da seguire è: Cartella/File oppure è: C:/Cartella/Sottocartella1/Sottocartella2/.../SottocartellaN/File
Poi altra domanda:
Che formati di texture 2d supportano C# e XNA?



RE: Problema XNA e C# - alessiobb3b - 19-07-2012

TGA mi sembra


RE: Problema XNA e C# - Loryea - 21-07-2012

Solo TGA?


RE: Problema XNA e C# - alessiobb3b - 21-07-2012

non solo ma quello principale



RE: Problema XNA e C# - Skyline - 21-07-2012

Ecco a te: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, .tga.



RE: Problema XNA e C# - Loryea - 21-07-2012

Non capisco...
Il formato dell'immagine "folletto" è JPG, il che vuol dire che non ci dovrebbe essere questo problema.
Ho provato sia:
Codice:
imm_folletto = Content.Load<Texture2D>("Immagini/folletto");
sia:
Codice:
imm_folletto = Content.Load<Texture2D>("C:/Utenti/utente/Immagini/folletto");
Ho provato a mettere anche lo slesh al contrario (cioè così "\" ansichè: "/") ma mi da errore... ora ci riprovo.
Niente... Sad


RE: Problema XNA e C# - Skyline - 21-07-2012

Hai caricato la texture dell Content che si trova (se non ricordo male) sulla sinistra di Visual Studio? (non riesco ad essere più preciso, poiché sono mesi che non utilizzo Visual Studio)


RE: Problema XNA e C# - Loryea - 22-07-2012

No... ora ci provo.
Non ho capito bene dove


RE: Problema XNA e C# - Skyline - 22-07-2012

Fammi un screen di Visual Studio con il progetto aperto, perché davvero non ricordo bene.


RE: Problema XNA e C# - Loryea - 22-07-2012

Si, lo screen è l'allegato, ho rpovato con un semplice copia incolla nella sezione WindowsGame9Content(Content), ma succedeva la stessa cosa.
Se può essere influente, il mio sistema operativo è Windows 7, la versione di questo Visual C# è quella del 2010 Express, ed in oltre il progetto è WindowsGame(4.0), e sto usando XNA Game Studio versione 4.0



RE: Problema XNA e C# - Skyline - 22-07-2012

È proprio li che vanno le risorse... vanno in: WindowsGame9Content

Crea la cartella: "Immagini" in: WindowsGame9Content e buttaci dentro il folletto, poi in: ("Immagini/folletto"); aggiungici l'estensione del file, esempio: ("Immagini/folletto.jpg");.

E prova, se non ti funzionerà proverò a cercare della documentazione, poiché io XNA non l'ho mai toccato, come anche il C#, quindi non è che ne so molto.


RE: Problema XNA e C# - Lorenz - 23-07-2012

nel tutorial che stai seguendo per xna lo spiega come creare la cartella nel content basta che crei una cartella ci metti l'immagine dentro e metti il percorso es: miacartella/miaimmagine