Mini MicroのBYTEMAP画面フォントサポート
このレポは、ここで説明するように、「Bytemap Font」(BMF)形式でビットマップフォントを読み取りおよびレンダリングするコードを提供します:https://bmf.php5.cz/?page=format
また、パブリックドメインにあると思われるいくつかのサンプルフォントファイルも含まれています。上記のWebサイトでさらに数千を見つけることができます。
このコードをミニマイクロで使用します。 Mini Microは、MiniScriptに基づいた楽しく、無料のレトロスタイルの仮想コンピューターであり、それ自体が清潔でシンプルでモダンなスクリプト言語です。
bmffonts.msファイルをインポートパスのどこかに配置します(現在の作業ディレクトリは行います。 /usr /libも良い場所です)。次に、 import "bmfFonts" 、bmffontsモジュールをロードし、 bmfFonts.Font.loadをロードしてフォントをロードします。
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
Font.printメソッドは、オプションのscaleパラメーター(デフォルトは1.0)を取得し、デフォルトよりも大きいまたは小さい印刷を可能にします。
bmfFonts.demo (または、 importを使用する代わりにモジュールを直接ロードして実行する)を実行すると、Fontsフォルダーを探し、それぞれに文字列を描画します。最終フォントは、画面の下部にある3倍のスケールで描画されます。結果は次のように見えるはずです:

パレットを変更することで、フォントをリクロールできます。これは、 fonts/ari14b.bmf (Arial 14pt Bold)など、グレースケールフォントで特にうまく機能します。例:
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
文字イメージはキャッシュされているため、これはフォントで印刷する前に行う必要があることに注意してください。いつでも新鮮なフォントオブジェクトをロードして、新しい色を描画できます。
または、スプライトを着色したり、ドローイメージで色合いの色を使用したりするのと同じように、それらを描くときにフィントを着色することができます。これを行うには、オプションのscaleとcolorパラメーターをFont.printに提供します。
このコードは、BMF形式のバージョン1.1とバージョン1.2の両方をサポートしています。バージョン1.2は、最近ではあるが重要なアップグレードであり、非ASSASCIIユニコード文字のサポート、Kerning、およびアンチアライアスされたフォントのアルファチャネルを追加します。
このレポは、いくつかのユーティリティプログラムを備えたutilフォルダーが含まれています。これらは実行時には必要ありませんが、独自のフォントを準備するのに役立つ場合があります。これらは: