Google-fonter i BASIC

Navngi en fontfamilie og få ekte vektortekst i stedet for et bitmapark, med ventetiden asynkron lasting krever og hva som skjer når spillet eksporteres.

Hva dette er til for#

Klassisk BASIC tegner tekst fra et fontbilde: et ark med glyffer du setter med TextFontImage(text, image). Det fungerer, det er det dialekten alltid har gjort, og det blir stående akkurat der det er. Men et bitmapark skalerer ikke, og det ser ut som det det er.

LoadGoogleFont navngir en familie i stedet:

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

Ingenting fjernes. LoadFont, TextFontImage og bitmap-veien fortsetter å fungere, og et program kan blande dem.

Ventetiden er ikke valgfri#

En font er en fil, og filen ankommer etter at kallet returnerer. Skriv ut før den lander, og de første bildene kommer ut i reservefonten, som leses 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 fellen fanget appens egne moduler en gang. Å erklære en font er ikke å laste den: et lerret laster bare ned en familie når noe spør etter den, og svaret ankommer et bilde eller flere senere.

Bla gjennom familiene#

Motoren følger med en liste over familier, og et program kan lese den, som er det en fontvelger inne i et spill trenger:

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

Listen fyller en velger; den er ikke en grense. Enhver Google-familie lastes ved navn gjennom LoadGoogleFont, listet eller ikke.

Hva som skjer når du eksporterer#

Hvor spillet kjørerHva som skjer
EditorenFamilien hentes fra Google første gang den navngis.
Nettleser-eksportDet samme, og filen serveres fra bygget når eksportøren kunne pakke den med.
Native eller Bevy-byggFilen må ha fulgt med bygget. Det finnes ingen nettverkstilgang.

Eksportøren leser programmet ditt, finner hver familie du har navngitt i klartekst, laster den ned og skriver den til assets/fonts/<Family>.woff2. Det bygget fungerer da uten nett.

Advarsel: en familie beregnet ved kjøretid kan ikke finnes ved å lese programmet, så den kan ikke pakkes med. Eksportrapporten sier fra, og bygget faller tilbake til standardfonten. Skriv LoadGoogleFont("Inter"), ikke LoadGoogleFont(names[i]), for alt som må overleve en eksport.

Kommandoene#

KommandoHva den gjør
LoadGoogleFont(family)Laster familien, gir tilbake en id
LoadGoogleFont(fontID, family)Det samme, med en id du velger
GoogleFontReady(fontID)1 så snart filen er brukbar
GoogleFontCount()Hvor mange familier listen tilbyr
GoogleFontName(index)Ett familienavn fra listen

Alt annet er det eksisterende fontmaskineriet: PrintFont(id) for Print, TextFontSet(text, id) for et Text-objekt, DeleteFont(id) for å fjerne den.

Gå videre#