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

Auteur Sujet: Entourer un texte d'une box (calcul de la taille d'affichage d'un texte)  (Lu 1652 fois)

0 Membres et 1 Invité sur ce sujet

dworkin

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Bonjour à tous,
pour la programmation d'un petit jeu de type point and click, je chercher à faire afficher une box autour d'un texte, de manière à le rendre plus lisible.
J'ai fait ce code :
        Texture texture;
        string image = "./images/";
        image += modele->getCarte()->getLieu().image;
        texture.loadFromFile(image);
        Sprite sprite;
        sprite.setTexture(texture);
        maFenetre->clear();
        maFenetre->draw(sprite);

            RectangleShape box =RectangleShape (Vector2f(12*modele->getMessage()->texte.size(),36));
            box.setFillColor (Color(0,0,0,128));
            box.setPosition(modele->getMessage()->coord.x-6, modele->getMessage()->coord.y-3);
            maFenetre->draw(box);

            sf::Text text;
            text.setFont(fonts[0]);
            text.setString(modele->getMessage()->texte);
            text.setCharacterSize(24);
            text.setPosition(modele->getMessage()->coord.x, modele->getMessage()->coord.y);
            maFenetre->draw(text);

Ca ne marche pas si mal que ça, sauf que le texte n'est jamais bien entouré : Selon les caractères que j'utilise, ma formule : 12*modele->getMessage()->texte.size()
va créer une box trop large ou trop étroite.
Y-a-t'il une solution pour calculer correctement la taille qu'un texte va prendre sur l'écran?

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Utilise sf::Text::getGlobalBounds(), ça te donnera le rectangle englobant ton texte. (et donc sa largeur)

dworkin

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
C'est exactement ce dont j'avais besoin :-)
J'avais raté cette fonction en lisant la doc  :-[
Merci beaucoup.  :)