Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Higestromm le Juillet 18, 2015, 01:53:13 pm

Titre: [RESOLU] Positionner un sf::text verticalement
Posté par: Higestromm le Juillet 18, 2015, 01:53:13 pm
Bonjour,

J’essaie d'afficher un sf::text centré dans un bouton mais je constate que l'alignement vertical n'est pas correct lors de l'affichage. Dans l'exemple ci-dessous, j'affiche un sf::text entoutré d'un rectangle qui est sensé représenter sa zone d'affichage mais le sf::text s'affiche en dessous.

void SLabel::draw(sf::RenderTarget &p_target, sf::RenderStates p_states) const
{
        // label est un membre de ma classe de type sf::text

        p_states.transform *= getTransform();

        sf::RectangleShape rect(sf::Vector2f(label.getLocalBounds().width, label.getLocalBounds().height));
        rect.setPosition(label.getPosition());
        rect.setOutlineColor(sf::Color::Red);
        rect.setFillColor(sf::Color::Transparent);
        rect.setOutlineThickness(1);

        p_target.draw(rect, p_states);

        p_target.draw(label, p_states);
}

En cherchant par-ci par-là j'ai lu que la zone d'affichage d'un sf::text dépendaient de la hauteur du plus haut caractère contenu dans la police et non du plus haut caractère affiché.

Du coup je suis un peu paumé. Apparemment getLocalBound me retourne bien la hauteur maximale de mon texte affiché donc il faudrait que je connaisse la hauteur du plus haut caractère de ma police pour créer un décalage et du coup positionner correctement mon sf::text.

Comment connaitre cette taille ?

Merci
Titre: Re : Positionner un sf::text verticalement
Posté par: Laurent le Juillet 18, 2015, 04:36:42 pm
label.getCharacterSize()
Titre: Re : Positionner un sf::text verticalement
Posté par: Higestromm le Juillet 18, 2015, 05:58:52 pm
Bon bah heu...


no comment  ::)