Google-typsnitt i BASIC

Namnge en typsnittsfamilj och få riktig vektortext i stället för en bitmapstabell, med väntan som asynkron inläsning kräver och vad som händer när spelet väl exporteras.

Vad det här är till för#

Klassisk BASIC ritar text från en typsnittsbild: en tabell med tecken du ställer in med TextFontImage(text, image). Det fungerar, det är vad dialekten alltid har gjort, och det ligger kvar exakt där det är. Men en bitmapstabell skalar inte, och den ser ut som vad den är.

LoadGoogleFont namnger en familj i stället:

font = LoadGoogleFont("Inter")
PrintFont(font)
Print("Hello")
DO
  Sync()
LOOP

Inget tas bort. LoadFont, TextFontImage och bitmapvägen fungerar alla fortfarande, och ett program kan blanda dem.

Väntan är inte valfri#

Ett typsnitt är en fil, och filen anländer efter att anropet returnerat. Skriv ut innan den landar och de första bildrutorna kommer ut i reservtypsnittet, vilket läses som "kommandot gjorde ingenting".

GoogleFontReady är det du väntar på:

font = LoadGoogleFont("Inter")
ready = 0
DO
  IF ready = 0
    IF GoogleFontReady(font) = 1
      PrintFont(font)
      ready = 1
    ENDIF
  ENDIF
  Print("Hello")
  Sync()
LOOP

Varning: samma fälla fångade en gång appens egna moduler. Att deklarera ett typsnitt är inte att ladda det: en canvas laddar bara ner en familj när något efterfrågar den, och svaret anländer en bildruta eller flera senare.

Att bläddra bland familjerna#

Motorn levererar en lista med familjer, och ett program kan läsa den, vilket är vad en typsnittsväljare inuti ett spel behöver:

count = GoogleFontCount()
FOR i = 0 TO count - 1
  Print(GoogleFontName(i))
NEXT i

Listan fyller en väljare; den är ingen gräns. Vilken Google-familj som helst laddas via namn genom LoadGoogleFont, listad eller inte.

Vad som händer när du exporterar#

Var spelet körsVad som händer
EditornFamiljen hämtas från Google första gången den namnges.
WebbläsarexportDetsamma, och filen serveras från bygget när exportören kunde bunta den.
Native- eller Bevy-byggeFilen måste ha följt med bygget. Det finns inget nätverk.

Exportören läser ditt program, hittar varje familj du namngett i klartext, laddar ner den och skriver den till assets/fonts/<Family>.woff2. Det bygget fungerar sedan offline.

Varning: en familj beräknad vid körning kan inte hittas genom att läsa programmet, så den kan inte buntas. Exportrapporten säger det, och bygget faller tillbaka på standardtypsnittet. Skriv LoadGoogleFont("Inter"), inte LoadGoogleFont(names[i]), för allt som måste överleva en export.

Kommandona#

KommandoVad det gör
LoadGoogleFont(family)Laddar familjen, lämnar tillbaka ett id
LoadGoogleFont(fontID, family)Detsamma, med ett id du väljer
GoogleFontReady(fontID)1 när filen är användbar
GoogleFontCount()Hur många familjer listan erbjuder
GoogleFontName(index)Ett familjenamn från listan

Allt annat är det befintliga typsnittsmaskineriet: PrintFont(id) för Print, TextFontSet(text, id) för ett Text-objekt, DeleteFont(id) för att ta bort det.

Att gå vidare#

</content>