Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème d'affichage de Texture .  (Lu 3785 fois)

0 Membres et 1 Invité sur ce sujet

MrDerkans

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
    • E-mail
Problème d'affichage de Texture .
« le: Mai 08, 2013, 08:47:22 pm »
Bonjour je viens de commencer le tuto du site sur la SFML (vous vous en douter) et j'ai deja un problème: je n'arrive pas à afficher des sprite. Pouvez m'aidez.
 Le code source:
#include <SFML/Graphics.hpp>
   
int main()
{
    // création de la fenêtre
    sf::RenderWindow window(sf::VideoMode(800, 600), "Tour de la mort");
        sf::Texture texture;
                sf::Sprite sprite;
                sf::Image image;
        if(!image.loadFromFile("image.jpg")){
             texture.loadFromImage(image);
                 sprite.setTexture(texture);
        }
               
                       
 // on fait tourner le programme tant que la fenêtre n'a pas été fermée
    while (window.isOpen())
    {
        // on traite tous les évènements de la fenêtre qui ont été générés depuis la dernière itération de la boucle
        sf::Event event;
               
                while (window.pollEvent(event))
        {
            // fermeture de la fenêtre lorsque l'utilisateur le souhaite
            if (event.type == sf::Event::Closed)
                window.close();
        }
               
               
       
                // effacement de la fenêtre en blanc
                window.clear(sf::Color::White);
        // c'est ici qu'on dessine tout
                window.draw(sprite);
   
        // fin de la frame courante, affichage de tout ce qu'on a dessiné
        window.display();
    }

    return 0;
}

Merci d'avance  ;)

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Problème d'affichage de Texture .
« Réponse #1 le: Mai 08, 2013, 09:23:38 pm »
loadFromFile retourne true si l'image est chargée, false si y'a eu une erreur. Donc ton if tu rentres dedans que si y'a eu une erreur au chargement de l'image.

Sinon je vois pas pourquoi tu t'embêtes à utiliser un sf::Image, si t'en as pas besoin utilise directement une sf::Texture comme dans le tout premier exemple du tutoriel sur les sprites.
Bref charge ta texture, "mets la" dans ton sprite et ça roule. ;)

MrDerkans

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
    • E-mail
Re : Problème d'affichage de Texture .
« Réponse #2 le: Mai 08, 2013, 09:52:15 pm »
Sa marche toujours pas  :'( le bon code c'est ça ?
#include <SFML/Graphics.hpp>
    int main()
{
    // création de la fenêtre
    sf::RenderWindow window(sf::VideoMode(800, 600), "Tour de la mort");
        sf::Texture texture;
                sf::Sprite sprite;
               
           if(!texture.loadFromFile("image.jpg")){
                        EXIT_FAILURE;
                   
           }
                sprite.setTexture(texture);
                       
 // on fait tourner le programme tant que la fenêtre n'a pas été fermée
    while (window.isOpen())
    {
        // on traite tous les évènements de la fenêtre qui ont été générés depuis la dernière itération de la boucle
        sf::Event event;
               
                while (window.pollEvent(event))
        {
            // fermeture de la fenêtre lorsque l'utilisateur le souhaite
            if (event.type == sf::Event::Closed)
                window.close();
        }
               
               
       
                // effacement de la fenêtre en blanc
                window.clear(sf::Color::White);
        // c'est ici qu'on dessine tout
                window.draw(sprite);
   
        // fin de la frame courante, affichage de tout ce qu'on a dessiné
        window.display();
    }

    return 0;
}
 

Eroy

  • Jr. Member
  • **
  • Messages: 60
    • Voir le profil
    • E-mail
Re : Problème d'affichage de Texture .
« Réponse #3 le: Mai 08, 2013, 10:12:29 pm »
Ton image est bien dans le même répertoire que ton .exe ?
Essaies de mettre un std::cout avant le exit_failure pour vérifier que l'image est bien trouvée.

MrDerkans

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
    • E-mail
Re : Problème d'affichage de Texture .
« Réponse #4 le: Mai 08, 2013, 10:20:36 pm »
Oui elle y'est tout est "sencé" marcher mais sa ne s'affiche pas  :'(

MrDerkans

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
    • E-mail
Re : Problème d'affichage de Texture .
« Réponse #5 le: Mai 12, 2013, 07:26:43 pm »
Personne pour m'aider  :'( :'( :'(
 sa fait que afficher une fenêtre de 800 par 600 toute blanche  :'(

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : Problème d'affichage de Texture .
« Réponse #6 le: Mai 12, 2013, 07:38:34 pm »
ta texture est vide dans ton dernier code. cf: sf::Texture::loadFromImage()

edit : j'ai rien dit.

germinolegrand

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Problème d'affichage de Texture .
« Réponse #7 le: Mai 12, 2013, 08:10:34 pm »
Quel IDE utilises-tu ? Si c'est code::blocks, il faut mettre l'image dans le dossier d'exécution qui est par défaut le dossier du .cbp et non du .exe ;)

kimci86

  • Full Member
  • ***
  • Messages: 127
    • Voir le profil
Re : Problème d'affichage de Texture .
« Réponse #8 le: Mai 12, 2013, 08:20:56 pm »
Vérifie que tu lies les bonnes dlls. (Ne mélange pas debug et release)

MrDerkans

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
    • E-mail
Re : Problème d'affichage de Texture .
« Réponse #9 le: Mai 12, 2013, 09:35:41 pm »
J'utilise Xcode pour information