ฟอนต์ Google ใน BASIC
ตั้งชื่อตระกูลฟอนต์แล้วได้ข้อความเวกเตอร์จริงแทนที่จะเป็นแผ่นภาพ พร้อมการรอที่การโหลดแบบอะซิงโครนัสต้องการ และสิ่งที่เกิดขึ้นเมื่อเกมถูกส่งออก
สิ่งนี้มีไว้เพื่ออะไร#
BASIC แบบคลาสสิกวาดข้อความจาก font image: แผ่นตัวอักษรที่คุณตั้งค่าด้วย
TextFontImage(text, image) มันได้ผล มันคือสิ่งที่ภาษาถิ่นนี้ทำมาตลอด และมันยัง
คงอยู่เหมือนเดิมทุกประการ แต่แผ่นภาพแบบ bitmap ไม่ยืดขนาดได้ และมันก็ดูเป็นสิ่งที่
มันเป็น
LoadGoogleFont ตั้งชื่อตระกูลฟอนต์แทน:
font = LoadGoogleFont("Inter")
PrintFont(font)
Print("Hello")
DO
Sync()
LOOP
ไม่มีอะไรถูกเอาออก LoadFont, TextFontImage และเส้นทาง bitmap ยังคงทำงาน
ต่อไปทั้งหมด และโปรแกรมสามารถผสมมันเข้าด้วยกันได้
การรอไม่ใช่ตัวเลือก#
ฟอนต์คือไฟล์ และไฟล์นั้นมาถึงหลังจากที่การเรียกฟังก์ชันคืนค่ากลับมาแล้ว หากพิมพ์ ก่อนที่มันจะมาถึง เฟรมแรก ๆ จะออกมาเป็นฟอนต์สำรอง ซึ่งอ่านได้ว่า "คำสั่งไม่ได้ ทำอะไรเลย"
GoogleFontReady คือสิ่งที่คุณรอ:
font = LoadGoogleFont("Inter")
ready = 0
DO
IF ready = 0
IF GoogleFontReady(font) = 1
PrintFont(font)
ready = 1
ENDIF
ENDIF
Print("Hello")
Sync()
LOOP
คำเตือน: กับดักเดียวกันนี้เคยดักโมดูลของแอปเองมาแล้วครั้งหนึ่ง การประกาศ ฟอนต์ไม่ใช่การโหลดมัน: canvas จะดาวน์โหลดตระกูลฟอนต์ก็ต่อเมื่อมีอะไรร้องขอมัน เท่านั้น และคำตอบจะมาถึงในอีกหนึ่งเฟรมหรือหลายเฟรมถัดไป
เรียกดูตระกูลฟอนต์#
เอนจินมาพร้อมรายชื่อตระกูลฟอนต์ และโปรแกรมสามารถอ่านมันได้ ซึ่งเป็นสิ่งที่ ตัวเลือกฟอนต์ภายในเกมต้องการ:
count = GoogleFontCount()
FOR i = 0 TO count - 1
Print(GoogleFontName(i))
NEXT i
รายการนี้ป้อนตัวเลือกให้ผู้ใช้ แต่ไม่ใช่ขีดจำกัด ตระกูล Google ใด ๆ โหลดได้ด้วยชื่อ
ผ่าน LoadGoogleFont ไม่ว่าจะอยู่ในรายการหรือไม่ก็ตาม
สิ่งที่เกิดขึ้นเมื่อคุณส่งออก#
| เกมทำงานที่ไหน | สิ่งที่เกิดขึ้น |
|---|---|
| ตัวแก้ไข | ตระกูลฟอนต์ถูกดึงมาจาก Google ครั้งแรกที่มันถูกเรียกชื่อ |
| ส่งออกสู่เบราว์เซอร์ | เหมือนกัน และไฟล์จะถูกให้บริการจากตัวบิลด์เมื่อตัวส่งออกสามารถรวมมันเข้าไปได้ |
| การบิลด์แบบ Native หรือ Bevy | ไฟล์ต้องเดินทางไปพร้อมกับตัวบิลด์แล้ว ไม่มีเครือข่ายให้ใช้ |
ตัวส่งออกจะอ่านโปรแกรมของคุณ หาทุกตระกูลที่คุณเรียกชื่อ เป็นข้อความล้วน
ดาวน์โหลดมัน แล้วเขียนลงใน assets/fonts/<Family>.woff2 การบิลด์นั้นจะทำงาน
แบบออฟไลน์ได้
คำเตือน: ตระกูลที่คำนวณตอนรันไทม์จะหาไม่เจอด้วยการอ่านโปรแกรม จึงไม่ สามารถถูกรวมเข้าไปได้ รายงานการส่งออกจะบอกเช่นนั้น และการบิลด์จะถอยกลับไปใช้ ฟอนต์เริ่มต้น เขียน
LoadGoogleFont("Inter")ไม่ใช่LoadGoogleFont(names[i])สำหรับสิ่งที่ต้องรอดผ่านการส่งออกไปได้
คำสั่งทั้งหมด#
| คำสั่ง | ทำอะไร |
|---|---|
LoadGoogleFont(family) | โหลดตระกูลฟอนต์ ส่งคืน id |
LoadGoogleFont(fontID, family) | เหมือนกัน แต่กำหนด id เอง |
GoogleFontReady(fontID) | เป็น 1 เมื่อไฟล์ใช้งานได้แล้ว |
GoogleFontCount() | รายการมีตระกูลฟอนต์กี่ตระกูล |
GoogleFontName(index) | ชื่อตระกูลหนึ่งจากรายการ |
ที่เหลือคือกลไกฟอนต์ที่มีอยู่แล้ว: PrintFont(id) สำหรับ Print,
TextFontSet(text, id) สำหรับอ็อบเจ็กต์ Text, DeleteFont(id) เพื่อลบมัน
ไปต่อ#
- ทั้งตระกูล พร้อมทุกพารามิเตอร์: คำสั่งของ Font
- ตัวภาษาถิ่นเอง: ภาษา BASIC