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

Auteur Sujet: Le centre d'un sf::Text, origin trafiqué ?  (Lu 2386 fois)

0 Membres et 1 Invité sur ce sujet

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Le centre d'un sf::Text, origin trafiqué ?
« le: Février 11, 2013, 09:30:58 pm »
Bonsoirs,

encore désoler de vous déranger, j'ai du mal à placer un sf::Text correctement... J'aimerai que ce texte soit bien alligné avec ce que je lui demande de l'être. Pour cela, je change d'abord sont origin de la manière suivante :

m_text.setOrigin(m_text.getLocalBounds().width / 2, m_text.getLocalBounds().height / 2);

D'ailleurs, je n'ai pas compris pourquoi il faut que je prenne LocalBounds et non GlobalBounds, m'enfin bon pas grave.

Ensuite, lorsque je place le text, il ne va jamais au milieu...

Voila un code assez simple à comprendre (ne vous préoccupez pas du guiml::Window, c'est tout simplement un WindowManager) :

#include <Window.h>
#include <iostream>

int main()
{
        guiml::Window window(sf::VideoMode(800, 600), "teste");
        sf::Font font;
        font.loadFromFile("DejaVuSansMono.ttf");

        sf::Text text(sf::String(std::string("text")), font);
        sf::Texture texture;
        sf::Sprite sprite(texture, sf::IntRect(0, 0, 100, 100));;
        sprite.setColor(sf::Color::Red);
        text.setOrigin(text.getLocalBounds().width/2, text.getLocalBounds().height/2);
        text.setPosition(50, 50);

        while(window.isOpen())
        {
                window.draw(sprite);
                window.draw(text);
                window.update();
        }
}

et bien entendu une image correspondante :

(la fenêtre tout à gauche).

Bon ben voila je crois que j'ai tout dis, merci d'avance.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Le centre d'un sf::Text, origin trafiqué ?
« Réponse #1 le: Février 11, 2013, 11:05:52 pm »
Le rectangle englobant de sf::Text ne démarre pas forcément à (0, 0). Essaye donc d'ajouter respectivement le .left et le .top à ton calcul.

Désolé je n'ai pas le temps de tester, donc je ne peux pas t'assurer à 100% que ça va régler ton problème.
Laurent Gomila - SFML developer

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Re : Le centre d'un sf::Text, origin trafiqué ?
« Réponse #2 le: Février 12, 2013, 07:19:47 pm »
Ah oui en effet, en ajoutant la position et en passant en "Global" sa fonctionne déjà beaucoup mieux :) . Merci :) .

 

anything