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

Auteur Sujet: Problème de taille de caractère lors de l'affichage..  (Lu 2569 fois)

0 Membres et 1 Invité sur ce sujet

Slash94

  • Jr. Member
  • **
  • Messages: 89
    • Voir le profil
Problème de taille de caractère lors de l'affichage..
« le: Avril 22, 2017, 02:15:07 pm »
Salut à tous !

Alors voilà, j'essaie de faire un système de bulle de dialogue qui s'adapte à la longueur de mon texte..

Lorsqu'il s'agit de la lettre a, c'est parfait, l'alignement des lettres et l'écartement de la bulle de dialogue restent parfaits !

Néanmoins, lorsque j'emploi la lettre i, la bulle de dialogue grandit beaucoup plus qu'il ne le faudrait et à l'inverse, la lettre w a tendance à très vite dépasser la bulle hors de ses zones...

Voici une illustration afin de poser le problème ici concrètement :



Je suis totalement conscient que chaque lettre est entourée d'un rectangle invisible qui définit ses bordures mais j'aimerais garder un espacement identique pour chaque lettre de l'alphabet de manière à ce que ça ne foire pas mon calcul de taille de bulle... Comment pourrais-je m'y prendre ? Quelle(s) portion(s) de code appartenant à sf::Text pourrait m'aider ?

PS : J'ai cru comprendre que sf::Glyph pourrait m'aider mais aucune idée de son utilisation pour résoudre mon problème..

Merci à tous & Salut à Laurent au passage ;-)
« Modifié: Avril 22, 2017, 02:39:13 pm par Slash94 »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re: Problème de taille de caractère lors de l'affichage..
« Réponse #1 le: Avril 22, 2017, 03:51:12 pm »
Si tu veux que chaque lettre fasse la même taille, il faut que tu utilises une police monospaced.

Si tu veux mesurer la taille d'un texte quelque soit la police utilisée et la taille de tes caractères tu peux tout simplement utiliser la méthode getGlobalBounds de sf::Text.

Slash94

  • Jr. Member
  • **
  • Messages: 89
    • Voir le profil
Re: Problème de taille de caractère lors de l'affichage..
« Réponse #2 le: Avril 22, 2017, 05:47:39 pm »
Salut à toi G.

Merci infiniment ! J'ai téléchargé une police monospaced ( je ne connaissais même pas ce principe de police d'écriture ! ) et ça fonctionne PARFAITEMENT !

T'es au top, merci encore :-]  ;)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème de taille de caractère lors de l'affichage..
« Réponse #3 le: Avril 22, 2017, 06:08:26 pm »
Ca n'empêche quand même pas d'utiliser getGlobalBounds() pour éviter les calculs hasardeux ;)
Laurent Gomila - SFML developer

Slash94

  • Jr. Member
  • **
  • Messages: 89
    • Voir le profil
Re: Problème de taille de caractère lors de l'affichage..
« Réponse #4 le: Avril 23, 2017, 03:22:13 pm »
Certes, mais j'aime la simplicité !
Néanmoins, si tu veux m'expliquer brièvement comment j'aurais pu m'y prendre, je suis preneur et très intéressé pour le principe de mon perfectionnement en prog :-]

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème de taille de caractère lors de l'affichage..
« Réponse #5 le: Avril 23, 2017, 04:49:14 pm »
Puisque tu veux une bulle qui ait la même taille que le texte, utilise la fonction qui... donne la taille du texte, plutôt qu'un calcul approximatif du genre "magic_number * nombre_de_caractères".

Et la fonction qui donne la taille du texte, c'est justement text.getGlobalBounds(). C'est tout... ;)
Laurent Gomila - SFML developer