Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Boost le Avril 09, 2014, 02:44:44 am

Titre: [Résolu] Sprite / Texture pixelisé.
Posté par: Boost le Avril 09, 2014, 02:44:44 am
Bonjour,

Je suis un grand débutant avec la SFML, j'ai décidé de mettre sur mon "application" un .png.

Celui ci :

(http://icons.iconarchive.com/icons/martin-berube/animal/128/snake-icon.png)

Sauf que le rendu sur ma fenêtre c'est ça :

(http://i.imgur.com/JV1mIkW.png)

Pour ce qui est de mon code :

int                     menu()
{
    sf::Sprite          sprite;
    sf::Texture         image;
    std::string         path(FONTS);

    sf::ContextSettings settings;
    settings.antialiasingLevel = 8;

    sf::RenderWindow    window(sf::VideoMode(200, 400), "Menu Snake",
                                                   sf::Style::Default, settings);
   
    path.assign(IMAGES);
    path.append("snake_logo.png");
    if (!image.loadFromFile(path, sf::IntRect(0, 0, 128, 128)))
        return (printError(ERR_OPEN_IMG));
    image.setSmooth(true);
    sprite.setTexture(image);
    sprite.move(36, 10);

    window.clear(sf::Color::White);
    while (window.isOpen())
    {
        sf::Event event;
        if (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
                window.close();
        }
        window.draw(sprite);
        window.display();
    }
    return (0);
}

Je ne comprends pas pourquoi ça me fais ça.
J'ai même essayé avec le setSmooth(true), mais rien n'y fait.

Est-ce que quelqu'un sait pourquoi ?

Merci d'avance.
Titre: Re : Sprite / Texture pixelisé.
Posté par: math1992 le Avril 09, 2014, 03:05:23 am
Il est où le
window.clear(sf::Color::White);
dans la boucle? Il faut l'appeler à chaque fois avant de dessiner sur la fenêtre.

Cependant, j'ignore si cela fera une différence.
Titre: Re : Sprite / Texture pixelisé.
Posté par: Laurent le Avril 09, 2014, 07:41:08 am
Oui, ça fera une grosse différence : les pixels semi-transparents ne s'accumuleront plus à l'infini, et ne produiront plus ces bordures nettes.
Titre: Re : Sprite / Texture pixelisé.
Posté par: Boost le Avril 09, 2014, 12:20:13 pm
Il faut donc que je place le clear dans la boucle ?

Est-ce que ça ne vas pas trop ralentir mes taux d'affichage par seconde ?
Titre: Re : Sprite / Texture pixelisé.
Posté par: Laurent le Avril 09, 2014, 01:17:53 pm
Non... c'est fait pour.

Merci de lire les tutoriels, et surtout les blocs rouges qui se trouvent dans ceux-ci.
Titre: Re : Sprite / Texture pixelisé.
Posté par: Boost le Avril 09, 2014, 09:50:10 pm
Très bien merci.