Google-skrifttyper i BASIC
Navngiv en skrifttypefamilie og få rigtig vektortekst i stedet for et bitmap-ark, med ventetiden asynkron indlæsning kræver, og hvad der sker, når spillet eksporteres.
Hvad dette er til#
Klassisk BASIC tegner tekst fra et font-billede: et ark med glyffer, du
sætter med TextFontImage(text, image). Det virker, det er, hvad dialekten
altid har gjort, og det bliver, præcis hvor det er. Men et bitmap-ark skalerer
ikke, og det ser ud, som det er.
LoadGoogleFont navngiver en familie i stedet:
font = LoadGoogleFont("Inter")
PrintFont(font)
Print("Hello")
DO
Sync()
LOOP
Intet fjernes. LoadFont, TextFontImage og bitmap-vejen virker alle
stadig, og et program kan blande dem.
Ventetiden er ikke valgfri#
En skrifttype er en fil, og filen ankommer, efter kaldet returnerer. At udskrive før den lander, og de første billeder kommer ud i fallback-fonten, hvilket læses som "kommandoen gjorde ingenting".
GoogleFontReady er det, du venter på:
font = LoadGoogleFont("Inter")
ready = 0
DO
IF ready = 0
IF GoogleFontReady(font) = 1
PrintFont(font)
ready = 1
ENDIF
ENDIF
Print("Hello")
Sync()
LOOP
Advarsel: den samme fælde fangede engang appens egne moduler. At erklære en skrifttype er ikke at indlæse den: et canvas downloader kun en familie, når noget beder om den, og svaret ankommer et billede eller flere senere.
Gennemse familierne#
Motoren leveres med en liste over familier, og et program kan læse den, hvilket er, hvad en font-vælger inde i et spil har brug for:
count = GoogleFontCount()
FOR i = 0 TO count - 1
Print(GoogleFontName(i))
NEXT i
Listen befolker en vælger; den er ikke en grænse. Enhver Google-familie
indlæses ved navn gennem LoadGoogleFont, listet eller ej.
Hvad der sker, når du eksporterer#
| Hvor spillet kører | Hvad der sker |
|---|---|
| Editoren | Familien hentes fra Google, første gang den navngives. |
| Browser-eksport | Det samme, og filen serveres fra builden, når eksportøren kunne pakke den med. |
| Native eller Bevy-build | Filen skal have rejst med builden. Der er intet netværk. |
Eksportøren læser dit program, finder hver familie, du har navngivet i ren
tekst, downloader den og skriver den til assets/fonts/<Family>.woff2. Den
build virker derefter offline.
Advarsel: en familie beregnet ved runtime kan ikke findes ved at læse programmet, så den kan ikke pakkes med. Eksportrapporten siger det, og builden falder tilbage til standardskrifttypen. Skriv
LoadGoogleFont("Inter"), ikkeLoadGoogleFont(names[i]), for alt, der skal overleve en eksport.
Kommandoerne#
| Kommando | Hvad den gør |
|---|---|
LoadGoogleFont(family) | Indlæser familien, giver et id tilbage |
LoadGoogleFont(fontID, family) | Det samme, med et id du selv vælger |
GoogleFontReady(fontID) | 1 når filen kan bruges |
GoogleFontCount() | Hvor mange familier listen tilbyder |
GoogleFontName(index) | Ét familienavn fra listen |
Alt andet er den eksisterende font-maskine: PrintFont(id) til Print,
TextFontSet(text, id) til et Text-objekt, DeleteFont(id) for at fjerne
den.
Gå videre#
- Hele familien, med hver parameter: Font-kommandoerne.
- Selve dialekten: BASIC-sproget.