IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XNA/Monogame Discussion :

chargement d'une image


Sujet :

XNA/Monogame

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Août 2008
    Messages : 47
    Points : 43
    Points
    43
    Par défaut chargement d'une image
    Salut,
    je viens de migrer vers XNA 3.0 et le fonction de chargement me fait planter tout le programme.
    voilà comment je fais

    // This is a texture we can render.
    Texture2D myTexture;

    protected override void LoadContent()
    {
    // Create a new SpriteBatch, which can be used to draw textures.
    spriteBatch = new SpriteBatch(GraphicsDevice);

    myTexture = Content.Load<Texture2D>("1.png");
    }
    ça bloque ici : myTexture = Content.Load<Texture2D>("1.png");

    pouvez-vous m'aider? merci.

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 115
    Points
    115
    Par défaut
    Bonjour,

    Est ce que le code identique fonctionnait sous XNA 2.0 ?
    Quel est exactement le message d'erreur ?

    Sans ces informations je ne peut pas beaucoup t'aider, mais par défault, je te répondrais de bien vérifier que la propriété "Content.RootDirectory" de ton ContentManager pointe bien sur le bon dossier par rapport à l'emplacement de ton image.

    EDIT : En relisant une deuxième fois ton post, j'ai compris ce qu'il n'allait pas, tu as fait la classique erreur de débutant, qui consiste à mettre l'extension du fichier ( .png dans ton cas ). Tu ne dois pas mentionner cette extension car toutes les ressources de ton jeux seront ensuite convertis en .xnb à la compilation, par le ContentPipeline.

    Donc remplace la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTexture = Content.Load<Texture2D>("1.png");
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTexture = Content.Load<Texture2D>("1");
    et ça devrait marcher

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Août 2008
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    En fait j'ai jamais travaillé avec XNA 2.0, quand j'ai dis que je migrer, c'est que je viens de la SDL et de la SFML .
    je viens de faire ce que t'as dis, mais ça marche pas.

    tu me dis : Quel est exactement le message d'erreur ?
    Bah!, j'ai pas de message d'erreurs, j'ai une génération réussite puis quand il vient le tour d'ouvrir la fenêtre du jeu, Visual C# 2008 m'ouvre la fenêtre du : Visual C# a rencontré un problème et doit fermé.

    NB : le code basique du Windows Game marche bien, il me donne la fenêtre bleu, donc je pense pas que j'ai un problème d'installation, merci.

  4. #4
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut
    As-tu bien une ressource png appelée "1" dans ton répertoire de ressources ?
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  5. #5
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Août 2008
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Oui, l'image est dans le dossier Content.

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Mohamed_DEV Voir le message
    Bah!, j'ai pas de message d'erreurs, j'ai une génération réussite puis quand il vient le tour d'ouvrir la fenêtre du jeu, Visual C# 2008 m'ouvre la fenêtre du : Visual C# a rencontré un problème et doit fermé.
    Normal que ton code soit correctement géneré, l'erreur que je t'ai indiqué n'est pas détéctable par le compilateur mais génère une exeption au cours de l'éxecution.

    Donc si j'ai bien compris, c'est pas le programme que tu lances qui plante, mais carrément Visual Studio ? Oo
    Ce ne devrait pas être possible, du moins, pas si le code de base fonctionne, lui, correctement.
    Car lorsque Visual Studio lance ton programme en débugage, il l'entoure d'un try/catch pour, justement, pouvoir te prévenir des exeptions que renvoient ton programme à l'éxécution, et pour que celles-ci ne puisssent pas faire planter Visual Studio.

    Essayes de mettre toi même des try/catch par dessus tous les blocks d'instructions que tu as rajouté par rapport au code de base, pour récupérer les erreurs.

    Comme ça, si tu ne sais pas faire :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    string error;
    try
    {
       myTexture = Content.Load<Texture2D>(@"1");
    }
    catch(Exception e)
    {
       error = e.Message;
    }

  7. #7
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Août 2008
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Idrakis là je comprends plus rien.

    j'ai mis le try/catch est là, ça marche, Visual ne se plante plus.

    tu peux m'expliquer stp.

  8. #8
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 115
    Points
    115
    Par défaut
    Je suis content que ça ai marché
    Mais je comprends toujours pas pourquoi Visual Studio ne te renvoyait pas lui-même l'éxeption

    Donc le flux passe bien dans le catch ?
    Dans ces cas-là, quel est le message d'erreur que tu récupères ?



    Quand tu as une partie du code qui est critique, dans le sens ou il risque de générer une exeption pour une raison externe à la volonté du programmeur, on la met dans un bloc try, qu'on fait suivre d'un ou plusieurs bloc catch ou/et d'un bloc finally.

    Si ton code ne génère aucune exeption, après avoir éxécuté ce qui se trouve dans le bloc try, il ne passera pas dans le(s) bloc(s) catch, par contre, il passera quoiqu'il arrive dans le bloc finally.
    Les blocs catch servent à gérer les exeptions, plusieurs blocs catch sont nécessaires quand plusieurs types d'éxeptions différentes sont potentiellement déclenchable par tobn code se situant dans le bloc try.

    Voici l'article du msdn traitant de la gestion des exeptions en C# :
    http://msdn.microsoft.com/fr-fr/libr...sw(VS.80).aspx

  9. #9
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Août 2008
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    En fait, j'ai pas de message d'erreur.

    Quand je veux l'afficher, il crash encore, je pige plus rien.

    tu fais comment toi pour charger une image?

  10. #10
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Août 2008
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Merci Idrakis pour ton aide.

    Il fallait faire un drop & drag de l'image dans Visual et pas mettre l'image dans le dossier du projet.

  11. #11
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Points : 115
    Points
    115
    Par défaut
    De rien,

    Oui, en effet, si tu vas mettre tes ressources directement à la main dans le dossier de ton projet, XNA Game Studio ne pourra pas détecter que tu as ajouté une ressource.
    Or, à chaques fois que tu ajoutes une ressource à un projet XNA, Le ContentPipeline de XGS compile toutes les ressources du projet en .xnb ( que ce soit des images, du son, des models 3D, des shaders etc... ).
    Voilà un très bon livre blanc sur le Content Pipeline d'XNA en français ( oui, j'ai bien dit en français :p ), écrit par un mvp français :
    http://msmvps.com/blogs/valentin/arc...-pipeline.aspx

    Par contre, c'est vraiment pas normal que Visual Studio plante à chaques fois que ton programme génère une exeption, tu vas vraiment galérer dès que tu vas vouloir faire quelque chose d'un peu plus complexe que de charger et d'afficher une image ><.
    Donc n'oublies pas, si ça plante à nouveau sans prévenir, tu peux détecter les erreurs avec try/catch, comme éxpliqué précedement.

    PS : Penses au Tag [Résolu]

  12. #12
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut
    Merci pour le livre blanc, Idrakis

    Ca m'a tout l'air d'être une lecture intéressante
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chargement d'une image avec evc4.0
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 14/11/2005, 20h39
  2. Chargement d'une image
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 31/10/2005, 14h27
  3. Réponses: 2
    Dernier message: 02/09/2005, 20h47
  4. Vitesse de chargement d'une image jpg ?
    Par ybruant dans le forum Langage
    Réponses: 6
    Dernier message: 16/11/2004, 20h42
  5. [debutant]Chargement d'une image de mes documents
    Par reineville dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/03/2004, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo