Prise en charge de la police d'écran Bytemap pour Mini Micro
Ce repo fournit du code pour lire et rendre les polices bitmap au format "Bytemap Font" (BMF), comme décrit ici: https://bmf.php5.cz/?page=format
Il comprend également quelques exemples de fichiers de police que je pense être dans le domaine public. Vous pouvez trouver des milliers d'autres sur le site Web ci-dessus.
Utilisez ce code avec Mini Micro. Mini Micro est un ordinateur virtuel amusant, gratuit et de style rétro basé sur MinIScript, qui est lui-même un langage de script propre, simple et moderne.
Placez le fichier bmffonts.ms quelque part dans votre chemin d'importation (le répertoire de travail actuel fera l'affaire; / usr / lib est également un bon endroit). Utilisez ensuite import "bmfFonts" pour charger le module BMFFont et bmfFonts.Font.load pour charger une police.
import "bmfFonts"
// Load a font
f = bmfFonts.Font.load("fonts/ming.bmf")
// Print a string in that font to gfx
f.print "Hello world!", 20, 500
// Get a character image, and make a Sprite out of it
spr = new Sprite
spr.image = f.getCharImage("R")
spr.x = 600
spr.y = 500
spr.scale = 3
spr.rotation = 30
display(4).sprites.push spr
La méthode Font.print prend également un paramètre scale facultatif (par défaut à 1.0), vous permettant d'imprimer plus ou moins que la valeur par défaut.
Si vous exécutez bmfFonts.demo (ou chargez et exécutez le module directement au lieu d'utiliser import ), il recherchera le dossier Fonts et dessinera une chaîne avec chacune. La police finale sera dessinée à l'échelle 3X en bas de l'écran. Le résultat devrait ressembler à ceci:

Vous pouvez recolorer une police en changeant sa palette. Cela fonctionne particulièrement bien avec les polices en niveaux de gris, comme fonts/ari14b.bmf (Arial 14pt Bold). Exemple:
font = bmfFonts.Font.load("fonts/ari14b.bmf")
n = font.palette.len
for i in range(1,n)
f.palette[i-1] = color.lerp(color.black, color.lime, i/n)
end for
font.print "Hello world!", 100,100
Notez que cela doit être fait avant d'imprimer avec la police, car les images de caractère sont mises en cache. Vous pouvez toujours charger un objet de police frais pour dessiner une nouvelle couleur.
Ou, vous pouvez teinter des polices lorsque vous les dessinez, tout comme la teinture d'un sprite ou utiliser une couleur de teinte avec des dessins. Pour ce faire, fournissez l' scale et les paramètres color facultatifs à Font.print .
Ce code prend en charge la version 1.1 et la version 1.2 du format BMF. La version 1.2 est une mise à niveau récente mais significative, ajoutant la prise en charge des caractères Unicode non ASCII, du kerning et un canal alpha pour les polices anti-aliasées.
Ce référentiel comprend un dossier util avec quelques programmes utilitaires. Ceux-ci ne sont pas nécessaires au moment de l'exécution, mais peuvent vous être utiles pour préparer vos propres polices. Ce sont: