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

Auteur Sujet: [SFML 2.0] sf::Text problème  (Lu 3768 fois)

0 Membres et 1 Invité sur ce sujet

Raitosan

  • Full Member
  • ***
  • Messages: 221
    • Voir le profil
    • E-mail
[SFML 2.0] sf::Text problème
« le: Avril 16, 2012, 10:30:02 pm »
Bonjour,

Et oui, les bugs s’enchaînent avec cette toute nouvelle version(tellement de changements déjà que je pense passer à autre chose)
Là le problème courant que je suis en train d'essayer de régler viens de l'affichage de sf::Text.
En fait, le texte est plus grand que ce que me renvois getLocalBounds() (oui, la super fonction remplacant l'ancienne qui fonctionnait très bien :-\ )

Ce qui fait que quand j'essaye de centrer mon texte dans un bouton, et bien il ne l'est pas  ::)
Une petite capture d'écran?



Texte centrer avec ce code:
m_text.setPosition((int)(m_position.x+m_padding.left+m_margin.left+(m_dimensions.width-m_text.getLocalBounds().width)/2), (int)(m_position.y+m_margin.top+(m_dimensions.height-m_text.getLocalBounds().height)/2));
Je précise que je n'avais aucun problème à ce niveau là avant de mettre à jour la version 2.0 de la SFML(j'avais la vielle version 2.0 x) )

Bon, on vois quand même qu'il y a u beaucoup de boulot de fait, et très bien même, mais tous ces changements me ralentissent plus qu'autre chose, et je trouve fortement dommage la suppression de petites fonctions très très pratique comme Flip... Nous sommes obliger de créer encore plus de variables, de faire plus de testes etc... et donc avoir un code beaucoup plus "crade" qu'avant.

Est-ce que ce problème vient donc de la fonction(je n'utilise peut être pas la bonne)? Ou alors d'ailleurs?

Merci d'avance!

Koryushin

  • Jr. Member
  • **
  • Messages: 93
    • Voir le profil
Re : [SFML 2.0] sf::Text problème
« Réponse #1 le: Avril 17, 2012, 07:23:12 am »
Salut, le problème a déjà été évoqué et il semble y avoir un début de solution dans ce post:
http://fr.sfml-dev.org/forums/index.php?topic=7544.0


Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.0] sf::Text problème
« Réponse #2 le: Avril 17, 2012, 08:05:24 am »
La feinte c'est que le rectangle englobant du texte n'est pas calé en (0, 0), comme tu peux le voir il y a un décalage en Y. La solution est donc simple : il faut retrancher m_text.getLocalBounds().top à ta position en Y (et pareil pour left en X, même si lui vaut certainement 0).

Sinon, c'est normal que le calcul du Y ne prenne pas en compte le padding ?

Citer
Je précise que je n'avais aucun problème à ce niveau là avant de mettre à jour la version 2.0 de la SFML(j'avais la vielle version 2.0 x) )
C'était quelle révision ?

Citer
Salut, le problème a déjà été évoqué et il semble y avoir un début de solution dans ce post:
http://fr.sfml-dev.org/forums/index.php?topic=7544.0
C'est pas vraiment le même problème, là il s'agit de centrer un texte, pas une glyphe toute seule.
Laurent Gomila - SFML developer

Raitosan

  • Full Member
  • ***
  • Messages: 221
    • Voir le profil
    • E-mail
Re : [SFML 2.0] sf::Text problème
« Réponse #3 le: Avril 17, 2012, 07:13:52 pm »
Citer
Sinon, c'est normal que le calcul du Y ne prenne pas en compte le padding ?
Oui, car là c'est pour un bouton. La dimension en hauteur est fixée, il est inutile de mettre un padding dans ces boutons là en hauteur.

Citer
C'était quelle révision ?
Bonne question, il me semble que c'était vers les débuts de la SFML 2.0.

Sinon je vais essayer ça, je vous dit quoi.

Edit: ça fonctionne, pas tout à fait correctement mais ça passe(des fois ça monte un peu plus que ce qu'il faudrait, non, j'ai bien mis .left pour x et top pour y.)

Merci pour votre aide, maintenant je vais devoir me pencher encore sur comment remplacer FlipX simplement...
« Modifié: Avril 17, 2012, 07:18:40 pm par Raitosan »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.0] sf::Text problème
« Réponse #4 le: Avril 17, 2012, 08:20:23 pm »
Citer
ça fonctionne, pas tout à fait correctement mais ça passe
Tu peux me montrer un exemple de texte qui ne passe pas parfaitement ?

Citer
maintenant je vais devoir me pencher encore sur comment remplacer FlipX simplement...
3 solutions (au moins) :
- placer l'origine au centre du sprite et utiliser un scale de -1
- utiliser un texture rect avec width et/ou height négatif (ne pas oublier dans ce cas un setRepeated(true) sur la texture) -- jamais testé encore
- écrire ta propre classe de sprite, si tu regardes le code source de sf::Sprite tu remarqueras qu'il n'y a vraiment pas grand chose
Laurent Gomila - SFML developer