BASIC'te Google yazı tipleri

Bir yazı tipi ailesini adlandırın ve bir bitmap sayfası yerine gerçek vektörel metin alın; asenkron yüklemenin gerektirdiği bekleme ve oyun dışa aktarıldığında olanlarla birlikte.

Bunun amacı ne#

Klasik BASIC, metni bir yazı tipi görüntüsünden çizer: TextFontImage(text, image) ile ayarladığınız bir glif sayfası. İşe yarar, lehçenin her zaman yaptığı şey budur, ve tam olarak olduğu yerde kalır. Ama bir bitmap sayfası ölçeklenmez, ve ne olduğu belli olur.

LoadGoogleFont, bunun yerine bir aile adlandırır:

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

Hiçbir şey kaldırılmadı. LoadFont, TextFontImage ve bitmap yolunun tamamı çalışmaya devam ediyor, ve bir program ikisini karıştırabilir.

Bekleme isteğe bağlı değil#

Bir yazı tipi bir dosyadır, ve dosya çağrı döndükten sonra gelir. O gelmeden yazdırırsanız ilk kareler yedek yazı tipinde çıkar, ve bu "komut hiçbir şey yapmadı" gibi okunur.

Beklediğiniz şey GoogleFontReady'dir:

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

Uyarı: aynı tuzak bir keresinde uygulamanın kendi modüllerini de yakaladı. Bir yazı tipini bildirmek onu yüklemek değildir: bir tuval, bir aileyi ancak bir şey onu istediğinde indirir, ve yanıt bir kare ya da birkaç kare sonra gelir.

Aileleri gözden geçirmek#

Motor bir aile listesi taşır, ve bir program onu okuyabilir; bu, bir oyunun içindeki bir yazı tipi seçicinin ihtiyaç duyduğu şeydir:

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

Liste bir seçiciyi doldurur; bir sınır değildir. Herhangi bir Google ailesi, listede olsun ya da olmasın, adıyla LoadGoogleFont üzerinden yüklenir.

Dışa aktardığınızda ne olur#

Oyunun çalıştığı yerNe olur
EditörAile, ilk adlandırıldığında Google'dan alınır.
Tarayıcı dışa aktarımıAynısı, ve dışa aktarıcı onu paketleyebildiyse dosya derlemeden sunulur.
Native ya da Bevy derlemesiDosyanın derlemeyle birlikte gelmiş olması gerekir. Ağ yoktur.

Dışa aktarıcı programınızı okur, düz metin olarak adlandırdığınız her aileyi bulur, indirir ve assets/fonts/<Family>.woff2 olarak yazar. O derleme sonra çevrimdışı çalışır.

Uyarı: çalışma zamanında hesaplanan bir aile, program okunarak bulunamaz, bu yüzden paketlenemez. Dışa aktarım raporu bunu söyler, ve derleme varsayılan yazı tipine döner. Bir dışa aktarımdan sağ çıkması gereken her şey için LoadGoogleFont("Inter") yazın, LoadGoogleFont(names[i]) değil.

Komutlar#

KomutNe yapar
LoadGoogleFont(family)Aileyi yükler, bir kimlik döndürür
LoadGoogleFont(fontID, family)Aynısı, seçtiğiniz bir kimlikle
GoogleFontReady(fontID)Dosya kullanılabilir olduğunda 1
GoogleFontCount()Listenin sunduğu aile sayısı
GoogleFontName(index)Listeden bir aile adı

Geri kalan her şey, mevcut yazı tipi makinesidir: Print için PrintFont(id), bir Text nesnesi için TextFontSet(text, id), onu bırakmak için DeleteFont(id).

Daha ileri gidin#