BASIC-இல் Google fonts

ஒரு font family-ஐ பெயரிட்டு, ஒரு bitmap sheet-க்குப் பதிலாக உண்மையான vector உரையைப் பெறுங்கள், asynchronous loading தேவைப்படும் காத்திருப்புடனும், விளையாட்டு export ஆனதும் என்ன நடக்கும் என்பதுடனும்.

இது எதற்காக#

Classic BASIC ஒரு font image-இலிருந்து உரையை வரைகிறது: TextFontImage(text, image)-உடன் நீங்கள் அமைக்கும் glyphs-இன் ஒரு sheet. இது வேலை செய்கிறது, இது எப்போதும் dialect செய்து வந்தது, மேலும் இது சரியாக அது இருக்கும் இடத்திலேயே இருக்கிறது. ஆனால் ஒரு bitmap sheet scale ஆகாது, மேலும் அது தான் என்னவோ அப்படியே தெரிகிறது.

LoadGoogleFont அதற்குப் பதிலாக ஒரு family-ஐ பெயரிடுகிறது:

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

எதுவும் அகற்றப்படவில்லை. LoadFont, TextFontImage மற்றும் bitmap path அனைத்தும் தொடர்ந்து வேலை செய்கின்றன, மேலும் ஒரு நிரல் அவற்றை கலக்கலாம்.

காத்திருப்பு விருப்பமானது அல்ல#

ஒரு font ஒரு கோப்பு, மேலும் அந்த கோப்பு call திரும்பியதற்குப் பிறகு வந்து சேரும். அது இறங்குவதற்கு முன் Print செய்தால், முதல் frames fallback font-இல் வரும், இது "command எதுவும் செய்யவில்லை" என்று படிக்கப்படும்.

நீங்கள் காத்திருக்க வேண்டியது GoogleFontReady:

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

எச்சரிக்கை: அதே trap ஒருமுறை ஆப்பின் சொந்த modules-ஐயே பிடித்தது. ஒரு font-ஐ declare செய்வது அதை load செய்வது அல்ல: ஏதேனும் ஒன்று கேட்கும்போது மட்டுமே ஒரு canvas ஒரு family-ஐ download செய்யும், மேலும் பதில் ஒரு frame அல்லது பல frames கழித்து வந்து சேரும்.

Families-ஐ உலாவுதல்#

engine families-இன் ஒரு பட்டியலை வழங்குகிறது, மேலும் ஒரு நிரல் அதைப் படிக்க முடியும், ஒரு விளையாட்டுக்குள் ஒரு font picker-க்கு தேவைப்படுவது இதுவே:

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

பட்டியல் ஒரு picker-ஐ நிரப்புகிறது; இது ஒரு வரம்பு அல்ல. எந்த Google family-உம், பட்டியலிடப்பட்டதோ இல்லையோ, LoadGoogleFont வழியாக பெயரால் load ஆகும்.

நீங்கள் export செய்யும்போது என்ன நடக்கும்#

விளையாட்டு எங்கு இயங்குகிறதுஎன்ன நடக்கும்
Editorfamily முதன்முறையாக பெயரிடப்படும்போது Google-இலிருந்து fetch செய்யப்படும்.
Browser exportஅதுவே, மேலும் exporter அதை bundle செய்ய முடிந்தால் build-இலிருந்து கோப்பு வழங்கப்படும்.
Native அல்லது Bevy buildகோப்பு build-உடன் பயணித்திருக்க வேண்டும். network எதுவும் இல்லை.

Exporter உங்கள் நிரலைப் படித்து, நீங்கள் plain text-இல் பெயரிட்ட ஒவ்வொரு family-ஐயும் கண்டுபிடித்து, அதை download செய்து assets/fonts/<Family>.woff2-க்கு எழுதுகிறது. அந்த build பிறகு ஆஃப்லைனில் வேலை செய்யும்.

எச்சரிக்கை: run time-இல் கணக்கிடப்படும் ஒரு family, நிரலைப் படித்து கண்டுபிடிக்க முடியாது, எனவே அதை bundle செய்ய முடியாது. export அறிக்கை இதைச் சொல்கிறது, மேலும் build இயல்பு font-க்கு பின்வாங்கும். ஒரு export-ஐ தாண்டி நிலைத்திருக்க வேண்டிய எதற்கும், LoadGoogleFont(names[i]) அல்ல, LoadGoogleFont("Inter") என்று எழுதுங்கள்.

Commands#

Commandஅது என்ன செய்கிறது
LoadGoogleFont(family)family-ஐ load செய்து, ஒரு id-ஐ திருப்பித் தரும்
LoadGoogleFont(fontID, family)அதுவே, நீங்கள் தேர்ந்தெடுக்கும் ஒரு id-உடன்
GoogleFontReady(fontID)கோப்பு பயன்படுத்தக்கூடியதாக ஆனதும் 1
GoogleFontCount()பட்டியல் எத்தனை families வழங்குகிறது
GoogleFontName(index)பட்டியலிலிருந்து ஒரு family பெயர்

மற்ற எல்லாமே இருக்கும் font machinery: Print-க்கு PrintFont(id), ஒரு Text object-க்கு TextFontSet(text, id), அதை நீக்க DeleteFont(id).

மேலும் ஆராய#