Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Pieni grafiikkafontti

Sivun loppuun

Antti Laaksonen [29.06.2002 15:06:59]

#

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

snakari [30.06.2002 21:03:46]

#

jos datassa on fontit, nii ne vois kyllä erotella välilyönneillä, nii sais enemmän selvää

snakari [30.06.2002 21:10:01]

#

ja noi ihmeen ä, ö ja å ei toimi

Dj Wolf [30.06.2002 21:31:28]

#

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?

Antti Laaksonen [30.06.2002 21:33:54]

#

snakari, yksi rivi on yksi fontti

Dj Wolf, DATA sisältää tietoa, jota voidaan lukea muuttujiin READ-komennolla

Dj Wolf [30.06.2002 21:39:31]

#

Niinpäs näkyy tekevän... Olisi nyt kiva itsekkin tuota hyödyntää :)

snakari [30.06.2002 22:38:15]

#

siis miten se lataa sen,
pitää tehä näköjään oma kun on noin hankala =D

snakari [30.06.2002 22:39:35]

#

Keksimpäs :D

Imbator [02.07.2002 14:16:31]

#

Mielenkiintoinen ohjelma. täytyypä ruveta käyttämään :)

Hanc [13.10.2002 13:01:21]

#

Juu... Tuo ois kätevä.. Varsinkin C-versio, teempä sellaisen...

Dude [29.07.2007 17:13:25]

#

tuolla saa vaikka niin että voi käyttää kahta kokoa tekstis


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta