دعم خط الشاشة Bytemap لـ Mini Micro
يوفر هذا الريبو رمزًا لقراءة وتقديم خطوط نقطية في تنسيق "خط Bytemap" (BMF) ، كما هو موضح هنا: https://bmf.php5.cz/؟page=format
ويتضمن أيضًا بعض ملفات الخطوط التي أعتقد أنها في المجال العام. يمكنك العثور على الآلاف الأخرى في موقع الويب أعلاه.
استخدم هذا الرمز مع Mini Micro. 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 ) ، فسيبحث عن مجلد الخطوط ، ورسم سلسلة مع كل واحدة. سيتم رسم الخط النهائي على مقياس 3x في أسفل الشاشة. يجب أن تبدو النتيجة مثل هذا:

يمكنك إعادة تلوين خط عن طريق تغيير لوحةها. هذا يعمل بشكل جيد مع خطوط رمادية ، مثل 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
لاحظ أنه يجب القيام بذلك قبل الطباعة مع الخط ، حيث يتم تخزين صور الأحرف. يمكنك دائمًا تحميل كائن خط جديد لرسم لون جديد.
أو ، يمكنك صبغ الخطوط أثناء رسمها ، تمامًا مثل صوب العفريت أو استخدام لون صبغة مع DrawImage. للقيام بذلك ، قم بتزويد scale الاختيارية color إلى Font.print .
يدعم هذا الرمز كل من الإصدار 1.1 والإصدار 1.2 من تنسيق BMF. الإصدار 1.2 هو ترقية حديثة ولكنها مهمة ، مضيفًا دعمًا لأحرف Unicode غير ASCII ، و Kerning ، وقناة Alpha للخطوط المضادة للتنقيح.
يشتمل هذا الريبو على مجلد util مع بضع برامج فائدة. هذه ليست ضرورية في وقت التشغيل ، ولكن قد تكون مفيدة لك في إعداد خطوطك الخاصة. هذه هي: