Suporte de fontes de tela bytemap para mini micro
Este repo fornece código para ler e renderizar fontes no formato "Bytemap font" (BMF), conforme descrito aqui: https://bmf.php5.cz/?page=format
Ele também inclui alguns arquivos de fonte de amostra que eu acredito estar em domínio público. Você pode encontrar milhares mais no site acima.
Use este código com mini micro. O Mini Micro é um computador virtual divertido, gratuito e de estilo retrô, baseado no MiniScript, que é uma linguagem de script limpa, simples e moderna.
Coloque o arquivo bmfftonts.ms em algum lugar no seu caminho de importação (o diretório de trabalho atual fará; /usr /lib também é um bom lugar). Em seguida, use import "bmfFonts" para carregar o módulo BMFFONTS e bmfFonts.Font.load para carregar uma fonte.
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
O método Font.print também leva um parâmetro scale opcional (padrão para 1.0), permitindo imprimir maiores ou menores que o padrão.
Se você executar bmfFonts.demo (ou carregar e executar o módulo diretamente em vez de usar import ), ele procurará a pasta Fontes e desenhe uma string com cada uma. A fonte final será desenhada na escala 3x na parte inferior da tela. O resultado deve parecer algo assim:

Você pode recolorar uma fonte alterando sua paleta. Isso funciona especialmente bem com fontes em escala de cinza, como fonts/ari14b.bmf (Arial 14pt Bold). Exemplo:
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
Observe que isso deve ser feito antes de imprimir com a fonte, pois as imagens do personagem são armazenadas em cache. Você sempre pode carregar um novo objeto de fonte para desenhar em uma nova cor.
Ou você pode tonificar fontes enquanto as desenham, assim como tingir um sprite ou usar uma cor de tonalidade com drawimage. Para fazer isso, forneça os parâmetros scale e color opcionais para Font.print .
Este código suporta a versão 1.1 e a versão 1.2 do formato BMF. A versão 1.2 é uma atualização recente, mas significativa, adicionando suporte para caracteres não-ASCII Unicode, Kerning e um canal alfa para fontes anti-alias.
Este repositório inclui uma pasta util com alguns programas de serviços públicos. Eles não são necessários no tempo de execução, mas podem ser úteis para você preparar suas próprias fontes. Estes são: