| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- Strict
- 'Framework BRL.D3D7Max2D
- Import BRL.Retro
- Type bbdigit
- Field x1#,y1#,x2#,y2#
- End Type
- Global letterlen[128]
- Global letters:bbdigit[128,8]
- SetUpVectorFont()
- 'Test()
- Function Test()
- Graphics 800,600,0
- Local sc# = 3.0
- Local dir = 1
- While Not KeyHit(key_escape)
- Cls
- sc = sc + .1*dir
- If sc > 10 Or sc < 1 Then dir = -dir
- DrawString(" !"+Chr$(30)+"#$%&'()*+,-./",400-sc*40,200-sc*15,sc)
- DrawString("0123456789:;<=>?",400-sc*40,225-sc*10,sc)
- DrawString("@ABCDEFGHIJKLMNO",400-sc*40,250-sc*5,sc)
- DrawString("PQRSTUVWXYZ[\]^_",400-sc*40,275+sc*5,sc)
- DrawString("`abcdefghijklmno",400-sc*40,300+sc*10,sc)
- DrawString("pqrstuvwxyz{|}~~" ,400-sc*40,325+sc*15,sc)
- Flip
-
- Delay Int(16+sc*5)
- Wend
- End Function
- Function SetUpVectorFont()
- RestoreData letterdata
-
- Local np,t,s
-
- For t = 0 To 127
- letterlen[t] = -1
- Next
-
- For t = 32 To 127
- ReadData np 'number of lines in letter (max 6) x1,y1, x2,y2
- letterlen[t] = np-1
- For s = 0 To letterlen[t]
- letters[t,s] = New bbdigit
- ReadData letters[t,s].x1
- ReadData letters[t,s].y1
- ReadData letters[t,s].x2
- ReadData letters[t,s].y2
- Next
- Next
- End Function
- Function DrawDigit(d,xd,yd,sc#)
- Local t
- ' If d > 32 And d < 128
- ' If letterlen[d] > -1
- For t = 0 To letterlen[d]
- DrawLine letters[d,t].x1*sc+xd,letters[d,t].y1*sc+yd,letters[d,t].x2*sc+xd,letters[d,t].y2*sc+yd
- Next
- ' EndIf
- ' EndIf
- End Function
- Function DrawString(st$,xd:Float,yd:Float,sc#)
- Local s,d,ln,t
-
- ln = Len(st$)
- For s = 0 To ln-1
- d = Asc(Mid$(st$,s+1,1))
- ' If d > 32 And d < 128
- ' If letterlen[d] > -1
- For t = 0 To letterlen[d]
- DrawLine letters[d,t].x1*sc+xd+sc*5*s,letters[d,t].y1*sc+yd,letters[d,t].x2*sc+xd+sc*5*s,letters[d,t].y2*sc+yd
- Next
- ' EndIf
- ' EndIf
- Next
- End Function
- ' ************************** vector text data *******************************************
- ' chars 32-127
- ' spc!"#$%&'()*+`-,/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_"
- #letterdata
- ' spc
- DefData 0
- ' !
- DefData 2, 2,0, 2,4, 2,5, 2,6
- ' ""
- DefData 2, 1,1, 1,3, 3,1, 3,3
- ' #
- DefData 4, 1,0, 1,6, 3,0, 3,6, 0,2, 4,2, 0,4, 4,4
- ' $
- DefData 6, 0,1, 0,3, 0,3, 4,3, 4,3, 4,5, 4,5, 0,5, 0,1, 4,1, 2,0, 2,6
- ' %
- DefData 3, 3,0, 1,6, 1,1, 1,2, 3,4, 3,5
- ' &
- DefData 6, 0,1, 4,5, 0,1, 1,0, 1,0, 2,1, 2,1, 0,4, 0,4, 2,6, 2,6, 4,4
- ' '
- DefData 1, 3,1, 2,2
- ' (
- DefData 3, 3,0, 1,2, 1,2, 1,4, 1,4, 3,6
- ' )
- DefData 3, 1,0, 3,2, 3,2, 3,4, 3,4, 1,6
- ' *
- DefData 3, 1,1, 3,5, 1,5, 3,1, 0,3, 4,3
- ' +
- DefData 2, 2,2, 2,4, 1,3, 3,3
- ' ,
- DefData 1, 2,5, 2,6
- ' -
- DefData 1, 1,3, 3,3
- ' .
- DefData 1, 2,5, 2,5
- ' /
- DefData 1, 4,0, 0,6
- ' 0
- DefData 4, 0,0, 0,6, 0,6, 4,6, 4,6, 4,0, 4,0, 0,0
- ' 1
- DefData 1, 2,0, 2,6
- ' 2
- DefData 5, 0,0, 4,0, 4,0, 4,3, 4,3, 0,3, 0,3, 0,6, 0,6, 4,6
- ' 3
- DefData 4, 0,0, 4,0, 4,0, 4,6, 4,6, 0,6, 2,3, 4,3
- ' 4
- DefData 3, 0,0, 0,3, 0,3, 4,3, 4,0, 4,6
- ' 5
- DefData 5, 0,0, 4,0, 0,0, 0,3, 0,3, 4,3, 4,3, 4,6, 0,6, 4,6
- ' 6
- DefData 4, 0,0, 0,6, 0,3, 4,3, 4,3, 4,6, 0,6, 4,6
- ' 7
- DefData 2, 0,0, 4,0, 4,0, 4,6
- ' 8
- DefData 5, 0,0, 0,6, 0,6, 4,6, 4,6, 4,0, 4,0, 0,0, 0,3, 4,3
- ' 9
- DefData 4, 0,0, 4,0, 4,0, 4,6, 0,0, 0,3, 0,3, 4,3
- ' :
- DefData 2, 2,1, 2,1, 2,5, 2,5
- ' ;
- DefData 2, 2,1, 2,1, 2,5, 2,6
- ' <
- DefData 2, 4,0, 1,3, 1,3, 4,6
- ' =
- DefData 2, 1,2, 3,2, 1,4, 3,4
- ' >
- DefData 2, 0,0, 3,3, 3,3, 0,6
- ' ?
- DefData 6, 1,1, 1,0, 1,0, 3,0, 3,0, 3,2, 3,2, 2,3, 2,3, 2,4, 2,5, 2,6
- ' @
- DefData 6, 2,2, 2,4, 2,4, 4,4, 4,4, 4,0, 4,0, 0,0, 0,0, 0,6, 0,6, 4,6
- ' A (65)
- DefData 5, 2,0, 0,2, 2,0, 4,2, 0,2, 0,6, 4,2, 4,6, 0,3, 4,3
- ' B
- DefData 6, 0,0, 0,6, 0,6, 4,6, 4,6, 4,3, 4,3, 0,3, 0,0, 3,0, 3,0, 3,3
- ' C
- DefData 3, 0,0, 0,6, 0,6, 4,6, 0,0, 4,0
- ' D
- DefData 6, 0,0, 0,6, 0,6, 2,6, 2,6, 4,4, 4,4, 4,2, 4,2, 2,0, 2,0, 0,0
- ' E
- DefData 4, 0,0, 0,6, 0,6, 4,6, 0,0, 4,0, 0,3, 2,3
- ' F
- DefData 3, 0,0, 0,6, 0,0, 4,0, 0,3, 2,3
- ' G
- DefData 5, 0,0, 0,6, 0,6, 4,6, 0,0, 4,0, 4,6, 4,3, 4,3, 2,3
- ' H
- DefData 3, 0,0, 0,6, 0,3, 4,3, 4,0, 4,6
- ' I
- DefData 3, 0,0, 4,0, 0,6, 4,6, 2,0, 2,6
- ' J
- DefData 4, 3,0, 4,0, 4,0, 4,6, 4,6, 2,6, 2,6, 1,4
- ' K
- DefData 4, 0,0, 0,6, 0,3, 2,3, 2,3, 4,0, 2,3, 4,6
- ' L
- DefData 2, 0,0, 0,6, 0,6, 4,6
- ' M
- DefData 4, 0,0, 0,6, 0,0, 2,3, 2,3, 4,0, 4,0, 4,6
- ' N
- DefData 3, 0,0, 0,6, 0,0, 4,6, 4,6, 4,0
- ' O
- DefData 4, 0,0, 0,6, 0,6, 4,6, 4,6, 4,0, 4,0, 0,0
- ' P
- DefData 4, 0,0, 0,6, 0,0, 4,0, 0,3, 4,3, 4,3, 4,0
- ' Q
- DefData 6, 0,0, 0,6, 0,6, 2,6, 2,6, 4,4, 4,4, 4,0, 4,0, 0,0, 4,6, 2,4
- ' R
- DefData 5, 0,0, 0,6, 0,0, 4,0, 0,3, 4,3, 4,0, 4,3, 2,3, 4,6
- ' S
- DefData 5, 0,0, 0,3, 0,3, 4,3, 4,3, 4,6, 4,6, 0,6, 0,0, 4,0
- ' T
- DefData 2, 0,0, 4,0, 2,0, 2,6
- ' U
- DefData 3, 0,0, 0,6, 0,6, 4,6, 4,6, 4,0
- ' V
- DefData 4, 0,0, 0,3, 0,3, 2,6, 2,6, 4,3, 4,3, 4,0
- ' W
- DefData 4, 0,0, 1,6, 1,6, 2,4, 2,4, 3,6, 3,6, 4,0
- ' X
- DefData 2, 0,0, 4,6, 0,6, 4,0
- ' Y
- DefData 3, 0,0, 2,3, 2,3, 4,0, 2,3, 2,6
- ' Z
- DefData 3, 0,0, 4,0, 4,0, 0,6, 0,6, 4,6
- ' [
- DefData 3, 3,0, 1,0, 1,0, 1,6, 1,6, 3,6
- ' \
- DefData 1, 0,0, 4,6
- ' ]
- DefData 3, 1,0, 3,0, 3,0, 3,6, 3,6, 1,6
- ' ^
- DefData 2, 1,2, 2,0, 2,0, 3,2
- ' _
- DefData 1, 0,7, 4,7
- ' `
- DefData 1, 1,1, 2,2
- ' a (97)
- DefData 5, 0,2, 4,2, 4,2, 4,6, 4,6, 0,6, 0,6, 0,3, 0,3, 4,3
- ' b
- DefData 4, 0,0, 0,6, 0,6, 4,6, 4,6, 4,2, 4,2, 0,2
- ' c
- DefData 3, 0,2, 0,6, 0,6, 4,6, 0,2, 4,2
- ' d
- DefData 4, 4,0, 4,6, 4,6, 0,6, 0,6, 0,2, 0,2, 4,2
- ' e
- DefData 5, 4,6, 0,6, 0,6, 0,2, 0,2, 4,2, 4,2, 4,3, 4,3, 1,3
- ' f
- DefData 3, 4,0, 2,0, 2,0, 2,6, 1,2, 3,2
- ' g
- DefData 5, 0,7, 4,7, 4,7, 4,2, 4,2, 0,2, 0,2, 0,6, 0,6, 4,6
- ' h
- DefData 3, 0,0, 0,6, 0,2, 4,2, 4,2, 4,6
- ' i
- DefData 2, 2,2, 2,6, 2,1, 2,1
- ' j
- DefData 4, 3,1, 3,1, 3,2, 3,7, 3,7, 0,7, 0,7, 0,5
- ' k
- DefData 3, 0,0, 0,6, 0,4, 3,2, 0,4, 3,6
- ' l
- DefData 1, 2,0, 2,6
- ' m
- DefData 4, 0,6, 0,2, 0,2, 4,2, 2,2, 2,4, 4,2, 4,6
- ' n
- DefData 4, 0,2, 0,6, 0,3, 1,2, 1,2, 4,2, 4,2, 4,6
- ' o
- DefData 4, 0,2, 0,6, 0,6, 4,6, 4,6, 4,2, 4,2, 0,2
- ' p
- DefData 4, 0,2, 0,7, 0,2, 4,2, 0,6, 4,6, 4,2, 4,6
- ' q
- DefData 4, 0,2, 0,6, 0,6, 4,6, 4,2, 4,7, 0,2, 4,2
- ' r
- DefData 3, 0,2, 0,6, 0,3, 1,2, 1,2, 4,2
- ' s
- DefData 5, 4,2, 0,2, 0,2, 0,4, 0,4, 4,4, 4,4, 4,6, 4,6, 0,6
- ' t
- DefData 2, 0,2, 4,2, 2,0, 2,6
- ' u
- DefData 3, 0,2, 0,6, 0,6, 4,6, 4,6, 4,2
- ' v
- DefData 2, 0,2, 2,6, 2,6, 4,2
- ' w
- DefData 4, 0,2, 1,6, 1,6, 2,4, 2,4, 3,6, 3,6, 4,2
- ' x
- DefData 2, 0,2, 4,6, 0,6, 4,2
- ' y
- DefData 2, 0,2, 2,5, 4,2, 1,7
- ' z
- DefData 3, 0,2, 4,2, 4,2, 0,6, 0,6, 4,6
- ' {
- DefData 4, 3,0, 2,0, 2,0, 2,6, 2,6, 3,6, 1,3, 2,3
- ' |
- DefData 1, 2,0, 2,6
- ' }
- DefData 4, 1,0, 2,0, 2,0, 2,6, 2,6, 1,6, 2,3, 3,3
- ' ~ (126)
- DefData 5, 0,3, 0,1, 0,1, 2,1, 2,1, 2,3, 2,3, 4,3, 4,3, 4,1
- ' <-
- DefData 3, 3,1, 0,3, 0,3, 3,5, 0,3, 4,3
- ' checkmark
- DefData 2, 0,4, 2,6, 2,6, 4,0
- ' ->
- DefData 3, 1,1, 4,3, 4,3, 1,5, 0,3, 4,3
|