Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: christophedlr le Novembre 11, 2012, 10:39:46 am

Titre: [Résolu] Afficher un sprite
Posté par: christophedlr le Novembre 11, 2012, 10:39:46 am
Bonjour,

Vu que je suis passé sur la SFML2, je fais des tests pour apprendre son utilisation, et je bute sur un problème que voici :
Dans le cadre de l'exposé que je dois rendre mercredi (exposé oral), je voulais refaire le TP du SDZ sur Mario Sokoban. Hélas je n'arrive pas à afficher un sprite.

Voici le code complet (pour l'instant qui n'est que minimal) :
#include <SFML/Graphics.hpp>

int main(void)
{
        sf::RenderWindow window(sf::VideoMode(800, 600, 32), "Tests sprites");
        sf::Texture texture;
        sf::Sprite sprite;

        texture.loadFromFile("images/caisse.jpg");
        sprite.setTexture(texture);

        while (window.isOpen())
    {
        // on inspecte tous les évènements de la fenêtre qui ont été émis depuis la précédente itération
        sf::Event event;
        while (window.pollEvent(event))
        {
            // évènement "fermeture demandée" : on ferme la fenêtre
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(sprite);
        window.display();
    }

        return 0;
}
 

Je me retrouve avec une fenêtre vide (que du noir), par contre si je charge une autre texture et donc un autre sprite, lui il s'affiche pas mais le premier oui.

Merci d'avance pour votre aide.

P.S. : La console ne renvoi pas d'erreur, l'image est belle et bien trouvée.
Titre: Re : Afficher un sprite
Posté par: Laurent le Novembre 11, 2012, 03:04:40 pm
Quel OS ? Quelle carte graphique ? Quelle version de SFML 2 ? Tes pilotes graphiques sont-ils à jour ?
Titre: Re : Afficher un sprite
Posté par: christophedlr le Novembre 11, 2012, 04:10:22 pm
Windows 7 Home Premium
Pour SFML2 c'est la version pré-compilé que tu donnes sur le site.
Les pilotes de la carte graphique sont à jour, c'est une NVidia Geforce GTX 650.

Ce que je ne comprend pas c'est que si j'ajoutes un second sprite, le premier s'affiche mais pas le second. Et si je n'en met qu'un, il s'affiche pas.

J'ai l'impression qu'il ne prend qu'un élément sur deux lol.
Titre: Re : Afficher un sprite
Posté par: Laurent le Novembre 11, 2012, 04:24:38 pm
Et si tu en mets plus que deux ?
Titre: Re : Afficher un sprite
Posté par: christophedlr le Novembre 11, 2012, 06:55:12 pm
Bon là je ne comprend plus rien. Je viens de tester en en mettant 3, les trois s'affichent. Si je les retires et que j'en ai laisse qu'un, ça s'affiche aussi alors que quand j'ai posté, ce n'était pas le cas un seul ça fonctionnait pas.

Et là je viens à l'instant sans rien toucher au code, de lancer le programme pour l'exposé (le début donc de code pour refaire mario sokoban), et ça s'affiche.

J'y comprend plus rien du tout, j'ai du avoir un bogue de windows ou de la carte graphique.

Du coup finalement j'aurais pu le faire le mario sokoban pour l'exposé, hélas j'ai peu de plus avoir le temps. Dommage, bref finalement je t'ai dérangé pour rien lol.