Pour les développeurs d'addins, je vous présente BetterFont, librairie/utilitaire qui vous permettra d'écrire du texte sans aucun problème
Avantages par rapport au PrintMini :
- Gestion automatique de retour à la ligne
- Gestion du \n
- La police est bien plus facile à lire
- Vous pouvez mettre jusqu'à ~248 caractères au total dans la police (qui est totalement customisable)
- Pas besoin de mettre la couleur
Installation
Installation
Ajoutez fonts.c dans votre projet, et #include "fonts.h" dans votre main. Comme MonochromeLib.
À noter que cet utilitaire nécessite MonochromeLib. Si vous ne voulez ou pouvez pas l'installer, il fonctionnera quand même (mais il sera plus lent), il suffit de remplacer ML_pixel(x+i%(charlength), y+i/charlength, 1); par BDisp_Setpoint_VRAM(x+i%(charlength), y+i/charlength, 1); .
Pour l'utiliser, il suffit d'utiliser la fonction dispStr(unsigned char* str, int x, int y) .
Pour cette raison vous pouvez également, si besoin, rajouter un argument int color à la fonction et faire ML_pixel(x+i%(charlength), y+i/charlength, color); . Si color=0 ça imprimera en blanc, 1 = noir, 2 = inversé.
Comment rajouter des caractères
Comment rajouter des caractères
Cet utilitaire permet aussi de rajouter des caractères. Pour cet exemple nous allons rajouter le caractère Σ.
On le représente en binaire :
00000
11111
01000
00100
01000
11111
00000
Il est à noter que la hauteur est de 7, il faut donc au total 7 lignes. La ligne du dessus n'est ici pas obligatoire (vu que c'est des 0 à gauche) mais si vous ne mettez pas la ligne tout en bas, votre caractère sera décalé d'un pixel.
Ensuite vous allez ici : http://www.binaryhexconverter.com/binary-to-decimal-converter et puis vous copiez collez le nombre en binaire ici (ou alors vous l'écrivez directement dans le convertisseur). Ce convertisseur est sympa parce qu'il enlève automatiquement les nouvelles lignes, il convertira donc le bon nombre.
Le convertisseur nous donne 1048716256. Nous allons l'ajouter dans la police :
Ensuite vous allez dans l'array des longueurs et vous mettez 5 dans l'emplacement réservé à votre caractère.
Pour afficher ce caractère (qui a dans cet exemple la valeur 0x96) il faut concaténer des strings. Exemple : char* str = "Le caract""\x90""re pour la somme est ""\x96"" .";
0x90 est le caractère 'è'.
Le maximum est actuellement 64 pixels, il est donc possible avec une hauteur de 7 pixels d'aller jusqu'à 9 pixels de longueur. Dans un autre exemple nous allons reprendre le caractère Σ mais l'adapter pour qu'il soit de 7 pixels de hauteur au lieu de 5 (même si ça fait moche, mais c'est pour l'exemple).
Vous aurez remarqué que dans le fonts.c un caractère est représenté par un array de 2 longs, un long pour chaque 32 pixels. Voici comment découper un caractère qui tient sur plus de 32 pixels.
On prend les 32 derniers bits (ici en gras) et on les isole du reste. On obtient 3800179263, que vous mettez dans le deuxième long.
Ensuite on prend le reste. 111 en binaire donne 7, donc vous mettez 7 dans le premier long.
Voilà, j'espère que cet utilitaire vous sera utile (en même temps ça sert à ça un utilitaire ), surtout pour les cours (Maths TS pourrait par exemple l'utiliser, selon moi le cours serait plus facile à lire )
Ah, pas mal. Content de voir que ma police sert. Qu'en est-il du rapport de puissance ?
Petite note pour les linuxiens, gint gère les polices de manière, disons... plus simple (voyez les notes sur le fxSDK).
Ça devrait être plus puissant aussi...
je viens de la lire la meilleure blague du monde (le prend pas mal, j'explique tout de suite après)
},{0, 201744 //for some reason, when the dispStr() function seeks the character at 0x90 and above
},{0, 201744 //it actually seeks it 6 characters after. there is absolutely no logical way I can think of
},{0, 201744 //that causes this bug. 0x90 (144) is not a significant number. neither is 6.
},{0, 201744 //so rather than spending 4532 hours debugging, the fix is simple:
},{0, 201744 //just put 6 characters between 0x89 and 0x90.
Si je comprend bien ce que tu as écris, tu te demande pourquoi entre 89 et 90 il y a un pas de 6 caractères. Si on prend le chiffrage hexadécimal, entre 0x89 (137) et 0x90 (144) il y a bien [138, 139, 140, 141, 142, 143] 6 chiffres.
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd