Ainakin omasta mielestäni SCREEN 13:n fontti on häiritsevän iso ja kömpelö. No nyt kehitin sitten oman 3*5-pikselin kokoisen fontin QB:hen, jolla teksti on pienempää. Tämä koodivinkki sisältää PiirraTeksti-aliohjelman, jota voi käyttää missä tahansa grafiikkatilassa. Tosin joistakin merkeistä tuli hieman epäselviä pienen pikselimäärän takia. Merkistö kattaa kaikki aakkoset, numerot ja useimmat erikoismerkit. Merkit on koodattu binäärinumeroina, ja koodaussysteemin pitäisi valjeta melko helposti.
Laskeskelin, kuinka paljon enemmän merkkejä mahtuu tällä uudella tapaa ruudulle, ja tulin seuraavaan tulokseen:
SCREEN 13
perinteinen tapa: 1000 merkkiä, uusi fontti 3200 merkkiä
SCREEN 12
perinteinen tapa: 4000 merkkiä, uusi fontti 15360 merkkiä
SCREEN 12:ssa päästiin jo melko hulppeisiin lukuihin, mutta toisaalta teksti on niin pientä, että lukeminen käy jo työstä.
DECLARE SUB PiirraTeksti (x%, y%, si$, v%) DIM SHARED kirjaimet(255) AS STRING 'luetaan kirjaimet DATAsta taulukkoon 'A-Z FOR i = 65 TO 90 READ kirjaimet(i) NEXT READ kirjaimet(ASC("Ä")) READ kirjaimet(ASC("Ö")) READ kirjaimet(ASC(".")) READ kirjaimet(ASC(",")) READ kirjaimet(ASC("?")) READ kirjaimet(ASC("!")) READ kirjaimet(ASC(":")) READ kirjaimet(34) ' " READ kirjaimet(ASC("'")) READ kirjaimet(ASC("\")) READ kirjaimet(ASC("/")) READ kirjaimet(ASC("_")) READ kirjaimet(ASC("-")) READ kirjaimet(ASC("(")) READ kirjaimet(ASC(")")) '0-9 FOR i = 48 TO 57 READ kirjaimet(i) NEXT 'toimii myös muilla SCREENeillä SCREEN 13 'esimerkkitekstiä PiirraTeksti 10, 20, "HTTP://WWW.OHJELMOINTIPUTKA.NET", 9 PiirraTeksti 10, 30, "ASIAA QBASIC-, VISUAL BASIC- ja PHP-OHJELMOINNISTA VUODESTA 2002 :)", 15 'kirjaindata DATA 010101111101 DATA 110101111110 DATA 011100100011 DATA 110101101110 DATA 111100110111 DATA 111100110100 DATA 011100101011 DATA 101101111101 DATA 010010010010 DATA 001001101011 DATA 101110110101 DATA 100100100111 DATA 101111111101 DATA 101111101101 DATA 010101101010 DATA 111101110100 DATA 010101101011 DATA 111101110101 DATA 011110001110 DATA 111010010010 DATA 101101101111 DATA 101101101010 DATA 101111111010 DATA 101010010101 DATA 101101010010 DATA 111010100111 DATA 101010111101 DATA 101010101010 DATA 000000000010 DATA 000000010010 DATA 011001010010 DATA 010010000010 DATA 000010000010 DATA 101000000000 DATA 010000000000 DATA 100010010001 DATA 001010010100 DATA 000000000111 DATA 000111000000 DATA 010100100010 DATA 010001001010 DATA 010101101010 DATA 010110010111 DATA 011101010111 DATA 110011001110 DATA 100111010010 DATA 111100111110 DATA 011110101110 DATA 111011010010 DATA 010101111010 DATA 011101011110 SUB PiirraTeksti (x%, y%, si$, v%) 'kaikki merkit läpi FOR b% = 1 TO LEN(si$) i$ = UCASE$(MID$(si$, b%, 1)) k% = 0 'h=Y, j=X FOR h = 0 TO 4 FOR j = 0 TO 2 k% = k% + 1 'jos 1, piirretään piste värillä IF MID$(kirjaimet(ASC(i$)), k%, 1) = "1" THEN PSET (x% + j, y% + h), v% END IF NEXT NEXT x% = x% + 4 NEXT END SUB
jos datassa on fontit, nii ne vois kyllä erotella välilyönneillä, nii sais enemmän selvää
ja noi ihmeen ä, ö ja å ei toimi
Minäkin tein kerran fontit, mutta datat ovat jokaiselle kirjaimelle erikseen tiedostoissa... Ja kokoakin niillä oli 8*5 tjsp. Kuinka muuten tuo DATA -käsky toimii?
snakari, yksi rivi on yksi fontti
Dj Wolf, DATA sisältää tietoa, jota voidaan lukea muuttujiin READ-komennolla
Niinpäs näkyy tekevän... Olisi nyt kiva itsekkin tuota hyödyntää :)
siis miten se lataa sen,
pitää tehä näköjään oma kun on noin hankala =D
Keksimpäs :D
Mielenkiintoinen ohjelma. täytyypä ruveta käyttämään :)
Juu... Tuo ois kätevä.. Varsinkin C-versio, teempä sellaisen...
tuolla saa vaikka niin että voi käyttää kahta kokoa tekstis
Aihe on jo aika vanha, joten et voi enää vastata siihen.