website logo
Auteur
avatar
artblink

Forum » » Création-Développement » » Comment déterminer la hauteur d'un texte (TextExtent.te_Height ?) ?


Posté : 29-12-2015 21:56 icone du post

Blaireau lol

Une police de caractère bitmaps, c'est simple, c'est un tableau composé par exemple de 8 pixels de long x 8 pixels de large (ou hauteur). La police ne prend JAMAIS la taille maximal de la matrice. Les ligne du haut sont utilisé pour les majuscule et parfois les lettre l,d,b,h,k, ect... utilise les lignes du haut, les g,p,j,etc... utilise les lignes du bas.

Parfois, les caractères ne remplisse jamais la matrice, il reste et restera toujours une ou plusieurs ligne du bas VIDE sans "allumage de pixels" et celle du haut.

Dans ton cas, il y a 4 lignes de pixels en haut et en pas

Ton point d'accroche sur l'affichage des caractères ce fait en haut à gauche de ce que tu veux afficher, mais toi tu veux modifier le point d'ancrage pour le centrer

Le problème des polices de caractères que j'avais pas en 88 sur mon cpc, c'est que tu peu modifier la taille comme bon te semble, le seul problème et que tu dois définir a quel moment cette police de caractère fais passer la ligne dans la matrice de 0 bits pour chaque pixel à 2 ligne, mais le problème, c'est que vu la multitude de police de caractères qui existe, chacune se comporte de façon différente.

La solution la plus simple est de transformer ton texte en sprite ou tiles ou autre.

Tu créé un graph ou tu insère ton texte, un sprite par exemple
Au lieu d'avoir une image d'un bonhomme, tu y mets l'heure
en fond, tu y mets un masque que tu efface

Exemple
Tu créé un spriter unicolor dont la taille dépend de la taille de la police et du nombre de caractère avec une marge de sécurité (une formule mathématique simple), exemple un rectangle bleu

tu y met le texte de l'heure

Tu défini que le fond bleu est un masque donc transparent en final, mais ton rectangle même invisible garde la même taille que t'a formule mathématique a défini en fonction de la taille de la police sélectionné

Tu positionne ensuite ce sprite u tu veux sur l'écran

Et tu mets a jour le contenu du sprite toute les secondes

C'est simple, tranquille, et comme dirait l'autre, tu mets ce que tu veux dans un sprite ou brush ou bob ou tiles

C'est une méthode simple a réaliser sous hollywood que j'ai trouvé il y a pas mal de temps
Couplé au doublebuffer hardware d'hollywood, les moteurs 2D sont beaucoup plus rapide

T'as pigé ou je t'envoie une gnolle de pomme de terre à 90??

bisoux


Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=2224&forum=14