Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Slash94 le Avril 22, 2017, 02:15:07 pm

Titre: Problème de taille de caractère lors de l'affichage..
Posté par: Slash94 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 :

(https://image.noelshack.com/fichiers/2017/16/1492863255-lettertrouble.png)

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 ;-)
Titre: Re: Problème de taille de caractère lors de l'affichage..
Posté par: G. 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 (https://en.wikipedia.org/wiki/Monospaced_font).

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 (https://www.sfml-dev.org/documentation/2.4.2-fr/classsf_1_1Text.php#a95d732f58bd12bf7ec388b106f3729ba) de sf::Text.
Titre: Re: Problème de taille de caractère lors de l'affichage..
Posté par: Slash94 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 :-]  ;)
Titre: Re: Problème de taille de caractère lors de l'affichage..
Posté par: Laurent le Avril 22, 2017, 06:08:26 pm
Ca n'empêche quand même pas d'utiliser getGlobalBounds() pour éviter les calculs hasardeux ;)
Titre: Re: Problème de taille de caractère lors de l'affichage..
Posté par: Slash94 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 :-]
Titre: Re: Problème de taille de caractère lors de l'affichage..
Posté par: Laurent 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... ;)