Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Doueusa

Pages: [1]
1
Graphique / Re : [SFML 2.0 RC] Problème avec les sf::Text
« le: Décembre 16, 2012, 01:13:46 pm »
Effectivement ça fonctionne maintenant, merci.

2
Graphique / [SFML 2.0 RC] Problème avec les sf::Text
« le: Décembre 15, 2012, 10:12:41 pm »
Bonjour  :)

J'ai un petit problème que je n'avais jamais rencontré avant avec les sf::Text.
Je vous explique précisément ce que je fais : je suis en train de faire un programme, pour le moment tout simple, dans lequel il y a un menu avec dedans des boutons. Ce menu est créé avec un sf::RectangleShape qui a une bordure noire pour bien distinguer le menu.

C'est à l'intérieur de ce bandeau que je place mes boutons, qui ne sont pour l'instant que des simples sf::RectangleShape sur lesquels je mets un sf::Text.
Je ne gère pas les événements pour l'instant.

Mais voilà, ces sf::Text qui sont dans les boutons ont un comportement assez étrange. Lorsque j'affiche le premier d'entre eux, celui-ci se transforme en un ensemble de rectangles noirs, alors que les autres s'affichent normalement.

Voici un screen pour illustrer le problème :

http://www.noelshack.com/2012-50-1355605829-screen-probleme-sftext.jpg

Je vous mets également ce code minimal compilable que j'ai préparé :

#include <SFML/Graphics.hpp>

int main()
{
    // Définition de la fenêtre
    sf::RenderWindow window(sf::VideoMode(800, 600), "Code minimal");
    window.setFramerateLimit(30);

    // Définition du fond
    sf::RectangleShape fond(sf::Vector2f(800, 600));
    fond.setFillColor(sf::Color::White);

    // Définition du bandeau de menu
    sf::RectangleShape bandeau;
    bandeau.setOutlineThickness(1.f);
    bandeau.setOutlineColor(sf::Color::Black);
    bandeau.setPosition(0.f, 0.f);
    bandeau.setSize(sf::Vector2f(800, 60));
    bandeau.setFillColor(sf::Color::White);

    // Définition des boutons
    sf::RectangleShape rectangles[3];
    sf::Text textes[3];
    for(int i = 0 ; i < 3 ; i++)
    {
        rectangles[i].setOutlineThickness(1.f);
        rectangles[i].setSize(sf::Vector2f(180.f, 40.f));
        rectangles[i].setFillColor(sf::Color::White);
        rectangles[i].setOutlineColor(sf::Color::Black);
        textes[i].setColor(sf::Color::Black);
        textes[i].setCharacterSize(16);
    }
    textes[0].setString("Texte 1");
    rectangles[0].setPosition(10.f, 5.f);
    textes[0].setPosition(75.f, 15.f);
    textes[1].setString("Texte 2");
    rectangles[1].setPosition(220.f, 5.f);
    textes[1].setPosition(265.f, 15.f);
    textes[2].setString("Texte 3");
    rectangles[2].setPosition(430.f, 5.f);
    textes[2].setPosition(475.f, 15.f);

    // Boucle principale
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(fond);
        window.draw(bandeau);
        for(int i = 0 ; i < 3 ; i++)
            window.draw(rectangles[i]);
        window.draw(textes[0]);
        window.draw(textes[1]);
        window.draw(textes[2]);
        window.display();
    }

    return EXIT_SUCCESS;
}
 

J'ai fait quelques tests, et j'ai remarqué que ce n'est pas un sf::Text en particulier qui a le problème, mais le premier qu'on affiche (avec window.draw(); ).
J'ai également inséré une pause après le window.display();  et je me suis aperçu qu'au premier affichage, tous les boutons s'affichent correctement, mais qu'à partir du deuxième les rectangles noirs apparaissent.

Je vous remercie d'avance pour votre aide.

Pages: [1]