Dark Bit Factory & Gravity
PROGRAMMING => Other languages => Yabasic => Topic started by: bikemadness on June 05, 2011
-
Here's something from my archives.
A simple attempt at changing the size of text.
The text sample is a short story.
Use the up/down d-pad to change the size.
a$="once upon a time there was a king and queen,"
a$=a$+" and they lived happily ever after."
s=1
open window 640,512
x=20*s
y=60*s
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
x=20*s
y=60*s
for a=1 to len(a$)
if mid$(a$,a,1)="a" then
line x-(18*s),y to x,y-(40*s)
line x,y-(40*s) to x+(18*s),y
line x-(13*s),y-(11*s) to x+(13*s),y-(11*s)
endif
if mid$(a$,a,1)="b" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y to x+(7*s),y
line x-(17*s),y-(20*s) to x+(7*s),y-(20*s)
line x-(17*s),y-(40*s) to x+(7*s),y-(40*s)
line x+(12*s),y-(35*s) to x+(12*s),y-(25*s)
line x+(12*s),y-(15*s) to x+(12*s),y-(5*s)
line x+(7*s),y-(40*s) to x+(12*s),y-(35*s)
line x+(7*s),y-(20*s) to x+(12*s),y-(25*s)
line x+(7*s),y-(20*s) to x+(12*s),y-(15*s)
line x+(7*s),y to x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="c" then
line x-(15*s),y-(5*s) to x-(15*s),y-(35*s)
line x-(10*s),y to x+(10*s),y
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(15*s),y-(35*s) to x-(10*s),y-(40*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x+(10*s),y-(40*s) to x+(15*s),y-(35*s)
line x+(10*s),y to x+(15*s),y-(5*s)
endif
if mid$(a$,a,1)="d" then
line x-(15*s),y-(40*s) to x-(15*s),y
line x-(15*s),y-(40*s) to x+(7*s),y-(40*s)
line x-(15*s),y to x+(7*s),y
line x+(12*s),y-(35*s) to x+(12*s),y-(5*s)
line x+(7*s),y-(40*s) to x+(12*s),y-(35*s)
line x+(7*s),y to x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="e" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(15*s),y-(40*s)
line x-(17*s),y to x+(15*s),y
line x-(17*s),y-(20*s) to x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="f" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(17*s),y-(40*s)
line x-(17*s),y-(20*s) to x+(10*s),y-(20*s)
endif
if mid$(a$,a,1)="g" then
line x-(17*s),y-(35*s) to x-(17*s),y-(5*s)
line x-(12*s),y-(40*s) to x+(12*s),y-(40*s)
line x-(12*s),y to x+(12*s),y
line x+(17*s),y-(5*s) to x+(17*s),y-(20*s)
line x+(17*s),y-(35*s) to x+(17*s),y-(30*s)
line x+(17*s),y-(20*s) to x+(7*s),y-(20*s)
line x-(17*s),y-(35*s) to x-(12*s),y-(40*s)
line x-(17*s),y-(5*s) to x-(12*s),y
line x+(12*s),y-(40*s) to x+(17*s),y-(35*s)
line x+(12*s),y to x+(17*s),y-(5*s)
endif
if mid$(a$,a,1)="h" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x+(15*s),y to x+(15*s),y-(40*s)
line x-(15*s),y-(20*s) to x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="i" then
line x,y to x,y-(40*s)
line x-(10*s),y to x+(10*s),y
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
endif
if mid$(a$,a,1)="j" then
line x,y-(40*s) to x,y-(5*s)
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(17*s),y-(5*s) to x-(12*s),y
line x,y-(5*s) to x-(5*s),y
line x-(5*s),y to x-(12*s),y
endif
if mid$(a$,a,1)="k" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x+(15*s),y-(40*s) to x-(15*s),y-(15*s)
line x+(15*s),y to x-(10*s),y-(18*s)
endif
if mid$(a$,a,1)="l" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x-(15*s),y to x+(10*s),y
endif
if mid$(a$,a,1)="m" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x+(17*s),y to x+(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x,y
line x+(17*s),y-(40*s) to x,y
endif
if mid$(a$,a,1)="n" then
line x-(15*s),y to x-(15*s),y-(40*s)
line x-(15*s),y-(40*s) to x+(15*s),y
line x+(15*s),y to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="o" then
line x-(15*s),y-(5*s) to x-(15*s),y-(35*s)
line x+(15*s),y-(5*s) to x+(15*s),y-(35*s)
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(10*s),y to x+(10*s),y
line x-(15*s),y-(35*s) to x-(10*s),y-(40*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x+(15*s),y-(35*s) to x+(10*s),y-(40*s)
line x+(15*s),y-(5*s) to x+(10*s),y
endif
if mid$(a$,a,1)="p" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(17*s),y-(15*s) to x+(10*s),y-(15*s)
line x+(15*s),y-(35*s) to x+(15*s),y-(20*s)
line x+(10*s),y-(40*s) to x+(15*s),y-(35*s)
line x+(10*s),y-(15*s) to x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="q" then
line x-(15*s),y-(5*s) to x-(15*s),y-(35*s)
line x+(15*s),y-(5*s) to x+(15*s),y-(35*s)
line x-(10*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(10*s),y to x+(10*s),y
line x-(15*s),y-(35*s) to x-(10*s),y-(40*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x+(15*s),y-(35*s) to x+(10*s),y-(40*s)
line x+(15*s),y-(5*s) to x+(10*s),y
line x+(15*s),y to x+(5*s),y-(10*s)
endif
if mid$(a$,a,1)="r" then
line x-(17*s),y to x-(17*s),y-(40*s)
line x-(17*s),y-(40*s) to x+(10*s),y-(40*s)
line x-(17*s),y-(15*s) to x+(10*s),y-(15*s)
line x+(15*s),y-(35*s) to x+(15*s),y-(20*s)
line x+(10*s),y-(40*s) to x+(15*s),y-(35*s)
line x+(10*s),y-(15*s) to x+(15*s),y-(20*s)
line x+(17*s),y to x+(5*s),y-(15*s)
endif
if mid$(a$,a,1)="s" then
line x-(12*s),y to x+(12*s),y
line x-(12*s),y-(20*s) to x+(12*s),y-(20*s)
line x-(12*s),y-(40*s) to x+(12*s),y-(40*s)
line x-(17*s),y-(25*s) to x-(17*s),y-(35*s)
line x+(17*s),y-(5*s) to x+(17*s),y-(15*s)
line x-(17*s),y-(35*s) to x-(12*s),y-(40*s)
line x-(17*s),y-(5*s) to x-(12*s),y
line x+(17*s),y-(35*s) to x+(12*s),y-(40*s)
line x+(17*s),y-(5*s) to x+(12*s),y
line x-(17*s),y-(25*s) to x-(12*s),y-(20*s)
line x+(17*s),y-(15*s) to x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="t" then
line x,y to x,y-(40*s)
line x-(15*s),y-(40*s) to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="u" then
line x-(15*s),y-(40*s) to x-(15*s),y-(5*s)
line x-(15*s),y-(5*s) to x-(10*s),y
line x-(10*s),y to x+(10*s),y
line x+(10*s),y to x+(15*s),y-(5*s)
line x+(15*s),y-(5*s) to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="v" then
line x-(17*s),y-(40*s) to x,y
line x,y to x+(17*s),y-(40*s)
endif
if mid$(a$,a,1)="w" then
line x-(20*s),y-(40*s) to x-(10*s),y
line x-(10*s),y to x,y-(40*s)
line x,y-(40*s) to x+(10*s),y
line x+(10*s),y to x+(20*s),y-(40*s)
endif
if mid$(a$,a,1)="x" then
line x-(15*s),y-(40*s) to x+(15*s),y
line x-(15*s),y to x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="y" then
line x-(15*s),y-(40*s) to x,y-(15*s)
line x+(15*s),y-(40*s) to x,y-(15*s)
line x,y-(15*s) to x,y
endif
if mid$(a$,a,1)="z" then
line x-(15*s),y-(40*s) to x+(15*s),y-(40*s)
line x+(15*s),y-(40*s) to x-(15*s),y
line x-(15*s),y to x+(15*s),y
endif
if mid$(a$,a,1)="." fill circle x-(10*s),y,(2*s)
if mid$(a$,a,1)="," fill triangle x-(10*s),y-(2*s) to x-(7*s),y-(2*s) to x-11,y+(4*s)
x=x+(40*s)
if x>500 and mid$(a$,a,1)=" " then
y=y+(60*s)
x=20*s
endif
next a
until (1=0)
Unchanged since I did it.
-
Lovely vector font. bikemadness. But all those if statements makes it more difficult than it needs to be if you want to reuse this wonderful code in other projects. I think a table driven approach, with predefined subroutines for loading and displaying characters, would suit this much better. It means less code to type for ever project that reuses this font, and it makes it much easier to update when you need to add in things like grammer, or extend the font to include the entire ascii character set:
a$="once upon a time there was a king and queen,"
a$=a$+" and they lived happily ever after."
LoadFont()
s = 1
open window 640,512
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
x=20*s
y=60*s
for a=1 to len(a$)
PrintCharacter(mid$(a$,a,1), x, y)
x=x+(CharacterWidth*s)
if x>500 and mid$(a$,a,1)=" " then
y=y+(CharacterHeight*s)
x=CharacterWidth*s
endif
next a
until (1=0)
// ==================
// Binary Data Format
// ==================
//
// data NumCharacters
// data CharacterWidth
// data CharacterHeight
// for (NumCharacters) {
// data ascii, NumLines
// for (NumLines) {
// data x1, y1, x2, y2
// }
// }
sub LoadFont()
MAX_CHARACTERS = 256
dim Start(MAX_CHARACTERS) // holds first line number to index
dim Count(MAX_CHARACTERS) // holds the number of lines to draw
dim x1(1), y1(1), x2(1), y2(1) // array of lines
read NumCharacters
read CharacterWidth
read CharacterHeight
TotalLines = 1
for ch = 1 to NumCharacters
read Ascii$ // the character to use
read NumLines // the number of lines to draw
Ascii = asc(lower$(Ascii$))
Start(Ascii) = TotalLines
Count(Ascii) = NumLines
for l = 1 to NumLines
redim x1(TotalLines), y1(TotalLines)
redim x2(TotalLines), y2(TotalLines)
read x1(TotalLines), y1(TotalLines)
read x2(TotalLines), y2(TotalLines)
TotalLines = TotalLines + 1
next l
next ch
end sub
sub PrintCharacter(char$, x, y)
ch = asc(mid$(char$,1,1))
for i=Start(ch) to Start(ch)+Count(ch)-1
line x+x1(i), y+y1(i) to x+x2(i), y+y2(i)
next i
end sub
// ==================
// Binary Data Format
// ==================
//
// data NumCharacters
// data CharacterWidth
// data CharacterHeight
// for (NumCharacters) {
// data ascii, NumLines
// for (NumLines) {
// data x1, y1, x2, y2
// }
// }
data 26 // NumCharacters
data 40 // CharacterWidth
data 60 // CharacterHeight
data "a", 3
data -18, 00, 00,-40
data 00,-40, 18, 00
data -13,-11, 13,-11
data "b", 10
data -17, 00, -17,-40
data -17, 00, 07, 00
data -17,-20, 07,-20
data -17,-40, 07,-40
data 12,-35, 12,-25
data 12,-15, 12,-05
data 07,-40, 12,-35
data 07,-20, 12,-25
data 07,-20, 12,-15
data 07, 00, 12,-05
data "c", 7
data -15,-05, -15,-35
data -10, 00, 10, 00
data -10,-40, 10,-40
data -15,-35, -10,-40
data -15,-05, -10, 00
data 10,-40, 15,-35
data 10, 00, 15,-05
data "d", 6
data -15,-40, -15, 00
data -15,-40, 07,-40
data -15, 00, 07, 00
data 12,-35, 12,-05
data 07,-40, 12,-35
data 07, 00, 12,-05
data "e", 4
data -17, 00, -17,-40
data -17,-40, 15,-40
data -17, 00, 15, 00
data -17,-20, 12,-20
data "f", 3
data -17, 00, -17,-40
data -17,-40, 17,-40
data -17,-20, 10,-20
data "g", 10
data -17,-35, -17,-05
data -12,-40, 12,-40
data -12, 00, 12, 00
data 17,-05, 17,-20
data 17,-35, 17,-30
data 17,-20, 07,-20
data -17,-35, -12,-40
data -17,-05, -12, 00
data 12,-40, 17,-35
data 12, 00, 17,-05
data "h", 3
data -15, 00, -15,-40
data 15, 00, 15,-40
data -15,-20, 15,-20
data "i", 3
data 00, 00, 00,-40
data -10, 00, 10, 00
data -10,-40, 10,-40
data "j", 5
data 00,-40, 00,-05
data -10,-40, 10,-40
data -17,-05, -12, 00
data 00,-05, -05, 00
data -05, 00, -12, 00
data "k", 3
data -15, 00, -15,-40
data 15,-40, -15,-15
data 15, 00, -10,-18
data "l", 2
data -15, 00, -15,-40
data -15, 00, 10, 00
data "m", 4
data -17, 00, -17,-40
data 17, 00, 17,-40
data -17,-40, 00, 00
data 17,-40, 00, 00
data "n", 3
data -15, 00, -15,-40
data -15,-40, 15, 00
data 15, 00, 15,-40
data "o", 8
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data "p", 6
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data "q", 9
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data 15, 00, 05,-10
data "r", 7
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data 17, 00, 05,-15
data "s", 11
data -12, 00, 12, 00
data -12,-20, 12,-20
data -12,-40, 12,-40
data -17,-25, -17,-35
data 17,-05, 17,-15
data -17,-35, -12,-40
data -17,-05, -12, 00
data 17,-35, 12,-40
data 17,-05, 12, 00
data -17,-25, -12,-20
data 17,-15, 12,-20
data "t", 2
data 00, 00, 00,-40
data -15,-40, 15,-40
data "u", 5
data -15,-40, -15,-05
data -15,-05, -10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-40
data "v", 2
data -17,-40, 00, 00
data 00, 00, 17,-40
data "w", 4
data -20,-40, -10, 00
data -10, 00, 00,-40
data 00,-40, 10, 00
data 10, 00, 20,-40
data "x", 2
data -15,-40, 15, 00
data -15, 00, 15,-40
data "y", 3
data -15,-40, 00,-15
data 15,-40, 00,-15
data 00,-15, 00, 00
data "z", 3
data -15,-40, 15,-40
data 15,-40, -15, 00
data -15, 00, 15, 00
[/font]
-
This is similar to how I made the line font in Twisted.
PS2 Yabasic lacked a resizable font, so this is a good development. :D
-
I agree with Rain Storm and CK.
The font is really excellent, I think you should do something more interesting with it than just have it display text as some kind of user test - How about using it in a proper effect like a vector scroll or even a zooming text typer I have never seen one of those done in PS2 Yabasic and it would be a cool effect!
Shame you only posted this now as it could have been expanded into an entry for the Wireframe comp where I think it would have done quite well if used with the right effect.
-
Thanks for the advice, rain/CK/shock.
I never did pursue it, back then, because I couldn't.
What could be done with the code was mind-blowing.
Even now.
but I did manage to scroll it.
a$="to the people at dbf interactive, thanks and more thanks for their tenacity"
s=1
open window 640,512
x=20*s
y=60*s+200
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
x=20*s
for a=1 to len(a$)
if mid$(a$,a,1)="a" then
line m+x-(18*s),y to m+x,y-(40*s)
line m+x,y-(40*s) to m+x+(18*s),y
line m+x-(13*s),y-(11*s) to m+x+(13*s),y-(11*s)
endif
if mid$(a$,a,1)="b" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y to m+x+(7*s),y
line m+x-(17*s),y-(20*s) to m+x+(7*s),y-(20*s)
line m+x-(17*s),y-(40*s) to m+x+(7*s),y-(40*s)
line m+x+(12*s),y-(35*s) to m+x+(12*s),y-(25*s)
line m+x+(12*s),y-(15*s) to m+x+(12*s),y-(5*s)
line m+x+(7*s),y-(40*s) to m+x+(12*s),y-(35*s)
line m+x+(7*s),y-(20*s) to m+x+(12*s),y-(25*s)
line m+x+(7*s),y-(20*s) to m+x+(12*s),y-(15*s)
line m+x+(7*s),y to m+x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="c" then
line m+x-(15*s),y-(5*s) to m+x-(15*s),y-(35*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(15*s),y-(35*s) to m+x-(10*s),y-(40*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x+(10*s),y-(40*s) to m+x+(15*s),y-(35*s)
line m+x+(10*s),y to m+x+(15*s),y-(5*s)
endif
if mid$(a$,a,1)="d" then
line m+x-(15*s),y-(40*s) to m+x-(15*s),y
line m+x-(15*s),y-(40*s) to m+x+(7*s),y-(40*s)
line m+x-(15*s),y to m+x+(7*s),y
line m+x+(12*s),y-(35*s) to m+x+(12*s),y-(5*s)
line m+x+(7*s),y-(40*s) to m+x+(12*s),y-(35*s)
line m+x+(7*s),y to m+x+(12*s),y-(5*s)
endif
if mid$(a$,a,1)="e" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(15*s),y-(40*s)
line m+x-(17*s),y to m+x+(15*s),y
line m+x-(17*s),y-(20*s) to m+x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="f" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(17*s),y-(40*s)
line m+x-(17*s),y-(20*s) to m+x+(10*s),y-(20*s)
endif
if mid$(a$,a,1)="g" then
line m+x-(17*s),y-(35*s) to m+x-(17*s),y-(5*s)
line m+x-(12*s),y-(40*s) to m+x+(12*s),y-(40*s)
line m+x-(12*s),y to m+x+(12*s),y
line m+x+(17*s),y-(5*s) to m+x+(17*s),y-(20*s)
line m+x+(17*s),y-(35*s) to m+x+(17*s),y-(30*s)
line m+x+(17*s),y-(20*s) to m+x+(7*s),y-(20*s)
line m+x-(17*s),y-(35*s) to m+x-(12*s),y-(40*s)
line m+x-(17*s),y-(5*s) to m+x-(12*s),y
line m+x+(12*s),y-(40*s) to m+x+(17*s),y-(35*s)
line m+x+(12*s),y to m+x+(17*s),y-(5*s)
endif
if mid$(a$,a,1)="h" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x+(15*s),y to m+x+(15*s),y-(40*s)
line m+x-(15*s),y-(20*s) to m+x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="i" then
line m+x,y to m+x,y-(40*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
endif
if mid$(a$,a,1)="j" then
line m+x,y-(40*s) to m+x,y-(5*s)
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(17*s),y-(5*s) to m+x-(12*s),y
line m+x,y-(5*s) to m+x-(5*s),y
line m+x-(5*s),y to m+x-(12*s),y
endif
if mid$(a$,a,1)="k" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x+(15*s),y-(40*s) to m+x-(15*s),y-(15*s)
line m+x+(15*s),y to m+x-(10*s),y-(18*s)
endif
if mid$(a$,a,1)="l" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x-(15*s),y to m+x+(10*s),y
endif
if mid$(a$,a,1)="m" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x+(17*s),y to m+x+(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x,y
line m+x+(17*s),y-(40*s) to m+x,y
endif
if mid$(a$,a,1)="n" then
line m+x-(15*s),y to m+x-(15*s),y-(40*s)
line m+x-(15*s),y-(40*s) to m+x+(15*s),y
line m+x+(15*s),y to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="o" then
line m+x-(15*s),y-(5*s) to m+x-(15*s),y-(35*s)
line m+x+(15*s),y-(5*s) to m+x+(15*s),y-(35*s)
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(15*s),y-(35*s) to m+x-(10*s),y-(40*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x+(15*s),y-(35*s) to m+x+(10*s),y-(40*s)
line m+x+(15*s),y-(5*s) to m+x+(10*s),y
endif
if mid$(a$,a,1)="p" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(17*s),y-(15*s) to m+x+(10*s),y-(15*s)
line m+x+(15*s),y-(35*s) to m+x+(15*s),y-(20*s)
line m+x+(10*s),y-(40*s) to m+x+(15*s),y-(35*s)
line m+x+(10*s),y-(15*s) to m+x+(15*s),y-(20*s)
endif
if mid$(a$,a,1)="q" then
line m+x-(15*s),y-(5*s) to m+x-(15*s),y-(35*s)
line m+x+(15*s),y-(5*s) to m+x+(15*s),y-(35*s)
line m+x-(10*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(10*s),y to m+x+(10*s),y
line m+x-(15*s),y-(35*s) to m+x-(10*s),y-(40*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x+(15*s),y-(35*s) to m+x+(10*s),y-(40*s)
line m+x+(15*s),y-(5*s) to m+x+(10*s),y
line m+x+(15*s),y to m+x+(5*s),y-(10*s)
endif
if mid$(a$,a,1)="r" then
line m+x-(17*s),y to m+x-(17*s),y-(40*s)
line m+x-(17*s),y-(40*s) to m+x+(10*s),y-(40*s)
line m+x-(17*s),y-(15*s) to m+x+(10*s),y-(15*s)
line m+x+(15*s),y-(35*s) to m+x+(15*s),y-(20*s)
line m+x+(10*s),y-(40*s) to m+x+(15*s),y-(35*s)
line m+x+(10*s),y-(15*s) to m+x+(15*s),y-(20*s)
line m+x+(17*s),y to m+x+(5*s),y-(15*s)
endif
if mid$(a$,a,1)="s" then
line m+x-(12*s),y to m+x+(12*s),y
line m+x-(12*s),y-(20*s) to m+x+(12*s),y-(20*s)
line m+x-(12*s),y-(40*s) to m+x+(12*s),y-(40*s)
line m+x-(17*s),y-(25*s) to m+x-(17*s),y-(35*s)
line m+x+(17*s),y-(5*s) to m+x+(17*s),y-(15*s)
line m+x-(17*s),y-(35*s) to m+x-(12*s),y-(40*s)
line m+x-(17*s),y-(5*s) to m+x-(12*s),y
line m+x+(17*s),y-(35*s) to m+x+(12*s),y-(40*s)
line m+x+(17*s),y-(5*s) to m+x+(12*s),y
line m+x-(17*s),y-(25*s) to m+x-(12*s),y-(20*s)
line m+x+(17*s),y-(15*s) to m+x+(12*s),y-(20*s)
endif
if mid$(a$,a,1)="t" then
line m+x,y to m+x,y-(40*s)
line m+x-(15*s),y-(40*s) to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="u" then
line m+x-(15*s),y-(40*s) to m+x-(15*s),y-(5*s)
line m+x-(15*s),y-(5*s) to m+x-(10*s),y
line m+x-(10*s),y to m+x+(10*s),y
line m+x+(10*s),y to m+x+(15*s),y-(5*s)
line m+x+(15*s),y-(5*s) to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="v" then
line m+x-(17*s),y-(40*s) to m+x,y
line m+x,y to m+x+(17*s),y-(40*s)
endif
if mid$(a$,a,1)="w" then
line m+x-(20*s),y-(40*s) to m+x-(10*s),y
line m+x-(10*s),y to m+x,y-(40*s)
line m+x,y-(40*s) to m+x+(10*s),y
line m+x+(10*s),y to m+x+(20*s),y-(40*s)
endif
if mid$(a$,a,1)="m+x" then
line m+x-(15*s),y-(40*s) to m+x+(15*s),y
line m+x-(15*s),y to m+x+(15*s),y-(40*s)
endif
if mid$(a$,a,1)="y" then
line m+x-(15*s),y-(40*s) to m+x,y-(15*s)
line m+x+(15*s),y-(40*s) to m+x,y-(15*s)
line m+x,y-(15*s) to m+x,y
endif
if mid$(a$,a,1)="z" then
line m+x-(15*s),y-(40*s) to m+x+(15*s),y-(40*s)
line m+x+(15*s),y-(40*s) to m+x-(15*s),y
line m+x-(15*s),y to m+x+(15*s),y
endif
if mid$(a$,a,1)="." fill circle m+x-(10*s),y,(2*s)
if mid$(a$,a,1)="," fill triangle m+x-(10*s),y-(2*s) to m+x-(7*s),y-(2*s) to m+x-(11*s),y+(4*s)
x=x+(40*s)
next a
m=m-2
if m<-(len(a$)*40*s) m=640
until (1=0)
hanging in there.
-
That looks cooler!
You're drawing the whole string every frame though, even the letters that are off screen there's also no reason not to adopt the data based approach that Rainstorm showed you, it's neater and much more flexible and would mean that you can use this cool font in other effects more easily (if you wanted to apply a rotation etc).
Anyway, looks good :)
-
Oh my god!
There was a lot more than what could be seen here in rain_storms data version.
I never tried to paste it.
I'd be years to understand how the data is retrieved.
It LOOKS a lot harder than the very simple stuff I've tried.
Thanks rain_storm. I'll see if I can add the scroll.
-
Whew! I got the data version to scroll and realized the font sizing wasn't working.
I worked out where and how to fit the multiplier [*s] - I think I understand why the coding is correct.
before - line x+x1(i), y+y1(i) to x+x2(i), y+y2(i)
after - line m+x+x1(i)*s, y+y1(i)*s to m+x+x2(i)*s, y+y2(i)*s
rain_storm, you also shortened my letter scrambler. should have seen my first draft. Thanks again.
-
oops sorry I missed the part where the scale is applied to the letters.
At first you had the data embedded inside the code, this is called hard coding and is considered bad practise. Now the data and code have been separated. The data is organised into structures and you can view each letter on its own without having to read through lines of code. You don't have all that code clouding things up. You can make changes directly to the data without touching any of the code that processes your data.
In fact the code that processes the data can now be considered a black box. You can just assume that the code will always process valid input correctly. You dont need to know how the gears within this black box operate. But your fix has introduced dependancy between the code issuing the call and the code within the black box, This is not good. What you want is a black box that operates in "Fire and Forget" mode. You should feed the black box everything that it needs to know, and no more. Also the code outside of the black box should not have access to intimate knowledge about how that black box works. Like "open window" its a black box that works. no one (except Jim) knows how it does its magic, but we're all greatful that it does it the same way, every time.
before - line x+x1(i), y+y1(i) to x+x2(i), y+y2(i)
after - line m+x+x1(i)*s, y+y1(i)*s to m+x+x2(i)*s, y+y2(i)*s
m and s are defined by your implentation. s is absolutely required. the function cannot draw the text properly if it doesn't know how big it should be so you need to make s an input to the subroutine...
sub PrintCharacter(char$, x, y, s)
ch = asc(mid$(char$,1,1))
for i=Start(ch) to Start(ch)+Count(ch)-1
line x+x1(i)*s, y+y1(i)*s to x+x2(i)*s, y+y2(i)*s
next i
end sub
Now you dont have to worry about moddifying s in you code. It wont break the function because the function now has its own copy of s.
m on the other hand is implementation specific, not all of the code that uses this function will need it to scroll, So m belongs in the code that calls the function:
PrintCharacter(mid$(a$,a,1), x+m, y, s)
The thing I'm trying to point out is that you should always make your code modular. Take the big problem apart by subdiving it into ever smaller pieces. If you solve all the small pieces, the big problem has also been solved. But for this too work you must keep each piece self contained. A small change should effect only the piece of the puzzle you are changing, it should have no effect on any of the other pieces.
The human mind (especially men) is not good at multi tasking. But when we see what needs to be done we can do anything. Dont have the information that you need to know spinkled throughout the code have it all together in one place, right next to where its being used if possible. Make it easier for yourself.
-
Here's my full alphabet font, upper and lower case.
the height can be stretched separately. (h)
a$="abcdefghijklmnopqrstuvwxyz?A"
LoadFont()
s=1
h=2
m=640
open window 640,512
x=40*s
y=60*s+200
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
x=20*s
for a=1 to len(a$)
PrintCharacter(mid$(a$,a,1), x+m, y,s)
x=x+(CharacterWidth*s)
'x=x+(40*s)
next a
m=m-2
if m<-(len(a$)*40*s) m=640
until (1=0)
// ==================
// Binary Data Format
// ==================
//
// data NumCharacters
// data CharacterWidth
// data CharacterHeight
// for (NumCharacters) {
// data ascii, NumLines
// for (NumLines) {
// data x1, y1, x2, y2
// }
// }
sub LoadFont()
MAX_CHARACTERS = 256
dim Start(MAX_CHARACTERS) // holds first line number to index
dim Count(MAX_CHARACTERS) // holds the number of lines to draw
dim x1(1), y1(1), x2(1), y2(1) // array of lines
read NumCharacters
read CharacterWidth
read CharacterHeight
TotalLines = 1
for ch = 1 to NumCharacters
read Ascii$ // the character to use
read NumLines // the number of lines to draw
Ascii = asc(Ascii$)
Start(Ascii) = TotalLines
Count(Ascii) = NumLines
for l = 1 to NumLines
redim x1(TotalLines), y1(TotalLines)
redim x2(TotalLines), y2(TotalLines)
read x1(TotalLines), y1(TotalLines)
read x2(TotalLines), y2(TotalLines)
TotalLines = TotalLines + 1
next l
next ch
end sub
sub PrintCharacter(char$, x, y, s)
ch = asc(mid$(char$,1,1))
for i=Start(ch) to Start(ch)+Count(ch)-1
line x+x1(i)*s, y+y1(i)*s*h to x+x2(i)*s, y+y2(i)*s*h
next i
end sub
// ==================
// Binary Data Format
// ==================
//
// data NumCharacters
// data CharacterWidth
// data CharacterHeight
// for (NumCharacters) {
// data ascii, NumLines
// for (NumLines) {
// data x1, y1, x2, y2
// }
// }
data 66// NumCharacters
data 40 // CharacterWidth
data 60 // CharacterHeight
data "A", 3
data -18, 00, 00,-40
data 00,-40, 18, 00
data -13,-11, 13,-11
data "B", 10
data -17, 00, -17,-40
data -17, 00, 07, 00
data -17,-20, 07,-20
data -17,-40, 07,-40
data 12,-35, 12,-25
data 12,-15, 12,-05
data 07,-40, 12,-35
data 07,-20, 12,-25
data 07,-20, 12,-15
data 07, 00, 12,-05
data "C", 7
data -15,-05, -15,-35
data -10, 00, 10, 00
data -10,-40, 10,-40
data -15,-35, -10,-40
data -15,-05, -10, 00
data 10,-40, 15,-35
data 10, 00, 15,-05
data "D", 6
data -15,-40, -15, 00
data -15,-40, 07,-40
data -15, 00, 07, 00
data 12,-35, 12,-05
data 07,-40, 12,-35
data 07, 00, 12,-05
data "E", 4
data -17, 00, -17,-40
data -17,-40, 15,-40
data -17, 00, 15, 00
data -17,-20, 12,-20
data "F", 3
data -17, 00, -17,-40
data -17,-40, 17,-40
data -17,-20, 10,-20
data "G", 10
data -17,-35, -17,-05
data -12,-40, 12,-40
data -12, 00, 12, 00
data 17,-05, 17,-20
data 17,-35, 17,-30
data 17,-20, 07,-20
data -17,-35, -12,-40
data -17,-05, -12, 00
data 12,-40, 17,-35
data 12, 00, 17,-05
data "H", 3
data -15, 00, -15,-40
data 15, 00, 15,-40
data -15,-20, 15,-20
data "I", 3
data 00, 00, 00,-40
data -10, 00, 10, 00
data -10,-40, 10,-40
data "J", 5
data 00,-40, 00,-05
data -10,-40, 10,-40
data -17,-05, -12, 00
data 00,-05, -05, 00
data -05, 00, -12, 00
data "K", 3
data -15, 00, -15,-40
data 15,-40, -15,-15
data 15, 00, -10,-18
data "L", 2
data -15, 00, -15,-40
data -15, 00, 10, 00
data "M", 4
data -17, 00, -17,-40
data 17, 00, 17,-40
data -17,-40, 00, 00
data 17,-40, 00, 00
data "N", 3
data -15, 00, -15,-40
data -15,-40, 15, 00
data 15, 00, 15,-40
data "O", 8
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data "P", 6
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data "Q", 9
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data 15, 00, 05,-10
data "R", 7
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data 17, 00, 05,-15
data "S", 11
data -12, 00, 12, 00
data -12,-20, 12,-20
data -12,-40, 12,-40
data -17,-25, -17,-35
data 17,-05, 17,-15
data -17,-35, -12,-40
data -17,-05, -12, 00
data 17,-35, 12,-40
data 17,-05, 12, 00
data -17,-25, -12,-20
data 17,-15, 12,-20
data "T", 2
data 00, 00, 00,-40
data -15,-40, 15,-40
data "U", 5
data -15,-40, -15,-05
data -15,-05, -10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-40
data "V", 2
data -17,-40, 00, 00
data 00, 00, 17,-40
data "W", 4
data -20,-40, -10, 00
data -10, 00, 00,-40
data 00,-40, 10, 00
data 10, 00, 20,-40
data "X", 2
data -15,-40, 15, 00
data -15, 00, 15,-40
data "Y", 3
data -15,-40, 00,-15
data 15,-40, 00,-15
data 00,-15, 00, 00
data "Z", 3
data -15,-40, 15,-40
data 15,-40, -15, 00
data -15, 00, 15, 00
data "?", 12
data -07,-40, 07,-40
data -07,-40,-12,-35
data 07,-40, 12,-35
data 12,-35, 12,-25
data 12,-25, 07,-20
data 07,-20, 05,-20
data 05,-20, 00,-15
data 00,-15, 00,-07
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data ".", 4
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data "!", 5
data 00,-07, 00,-40
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data "-", 1
data -07,-20, 07,-20
data "'", 6
data -01,-40, 01,-38
data -01,-38, 01,-40
data 00,-38, 00,-38
data -01,-39, 01,-39
data -01,-38,-02,-35
data -02,-35, 01,-38
data ",", 6
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00, 00
data -01,-01, 01,-01
data -01, 00,-02, 03
data -02, 03, 01, 00
data "1", 3
data 00, 00, 00,-40
data 00,-40,-05,-35
data -05, 00, 05, 00
data "2", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-22
data 15,-22, 10,-17
data 10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15, 00
data -15, 00, 15, 00
data "3",11
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-25
data 15,-25, 10,-20
data 10,-20, 15,-15
data 15,-15, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data 00,-20, 10,-20
data "4", 4
data 07, 00, 07,-40
data 07,-40,-15,-15
data -15,-15,-15,-10
data -15,-10, 17,-10
data "5", 8
data 15,-40,-15,-40
data -15,-40,-15,-22
data -15,-22, 10,-22
data 10,-22, 15,-17
data 15,-17, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "6",11
data 15,-35, 10,-40
data 10,-40,-10,-40
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-17
data 15,-17, 10,-22
data 10,-22,-10,-22
data -10,-22,-15,-15
data "7", 2
data -15,-40, 15,-40
data 15,-40,-02, 00
data "8",15
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-25
data 15,-25, 10,-20
data 10,-20, 15,-15
data 15,-15, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-15
data -15,-15,-10,-20
data -10,-20,-15,-25
data -15,-25,-15,-35
data -10,-20, 10,-20
data "9",11
data 15,-22,10,-17
data 10,-17,-10,-17
data -10,-17,-15,-22
data -15,-22,-15,-35
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "0", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-35
data -10,-40, 10, 00
data "a",12
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 20, 00
data 15,-12, 10,-17
data 10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "b", 10
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-20, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "c", 7
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "d",10
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 20, 00
data "e", 9
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-20
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-12
data 15,-12,-15,-12
data "f", 5
data 15,-35, 10,-40
data 10,-40, 00,-40
data 00,-40,-05,-35
data -05,-35,-05, 00
data -15,-20, 05,-20
data "g",11
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-20, 15, 10
data 15, 10, 10, 15
data 10, 15,-10, 15
data -10, 15,-15, 10
data "h", 6
data -10,-40,-15,-35
data -15,-35,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "i", 5
data 00, 00, 00,-25
data -01,-32, 01,-30
data -01,-30, 01,-32
data 00,-30, 00,-32
data -01,-31, 01,-31
data "j", 9
data 00, 00, 00,-25
data 00,-25, 00, 10
data 00, 10,-05, 15
data -05, 15,-10, 15
data -10, 15,-15, 10
data -01,-32, 01,-30
data -01,-30, 01,-32
data 00,-30, 00,-32
data -01,-31, 01,-31
data "k", 4
data -10,-40,-15,-35
data -15,-35,-15, 00
data 10,-25,-15,-10
data 10, 00,-08,-14
data "l", 2
data 00,-40,-05,-35
data -05,-35,-05, 00
data "m", 9
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25,-05,-25
data -05,-25, 00,-20
data 00,-20, 00, 00
data 00,-20, 05,-25
data 05,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "n",5
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "o", 8
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-20
data "p", 8
data -15,-25,-15, 20
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "q", 8
data 15,-25, 15, 20
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "r", 4
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data "s",11
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-18
data -15,-18,-10,-13
data -10,-13, 10,-13
data 10,-13, 15,-10
data 15,-10, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "t", 3
data -05,-40,-05,-05
data -05,-05, 00, 00
data -10,-25, 05,-25
data "u", 5
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15, 00, 15,-25
data "v", 2
data -13,-25, 00, 00
data 00, 00, 13,-25
data "w", 4
data -15,-25,-08, 00
data -08, 00, 00,-25
data 00,-25, 08, 00
data 08, 00, 15,-25
data "x", 2
data -10,-25, 10, 00
data -10, 00, 10,-25
data "y", 8
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-25, 15, 10
data 15, 10, 10, 15
data 10, 15,-10, 15
data -10, 15,-15, 10
data "z", 3
data -13,-25, 13,-25
data 13,-25,-13, 00
data -13, 00, 13, 00
The font will do for now. I'll do something with it later.
-
With a couple more lines and a little alteration, I now have Italics.
a$="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG"
a$=a$+" the quick brown fox jumps over the lazy dog "
LoadFont()
s=1
h=2
w=0.4
m=640
open window 640,512
x=40*s
y=60*s+200
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
if c=128 w=w-.01
if c=32 w=w+.01
if w<0 w=0
x=20*s
for a=1 to len(a$)
PrintCharacter(mid$(a$,a,1), x+m, y,s)
x=x+(CharacterWidth*s)
next a
m=m-2
if m<-(len(a$)*40*s) m=640
until (1=0)
sub LoadFont()
MAX_CHARACTERS = 256
dim Start(MAX_CHARACTERS) // holds first line number to index
dim Count(MAX_CHARACTERS) // holds the number of lines to draw
dim x1(1), y1(1), x2(1), y2(1) // array of lines
read NumCharacters
read CharacterWidth
read CharacterHeight
TotalLines = 1
for ch = 1 to NumCharacters
read Ascii$ // the character to use
read NumLines // the number of lines to draw
Ascii = asc(Ascii$)
Start(Ascii) = TotalLines
Count(Ascii) = NumLines
for l = 1 to NumLines
redim x1(TotalLines), y1(TotalLines)
redim x2(TotalLines), y2(TotalLines)
read x1(TotalLines), y1(TotalLines)
read x2(TotalLines), y2(TotalLines)
TotalLines = TotalLines + 1
next l
next ch
end sub
sub PrintCharacter(char$, x, y, s)
ch = asc(mid$(char$,1,1))
for i=Start(ch) to Start(ch)+Count(ch)-1
z=(y1(i)-y)*w
z1=(y2(i)-y)*w
line x+x1(i)*s-z, y+y1(i)*s*h to x+x2(i)*s-z1, y+y2(i)*s*h
' line x+x1(i)*s, y+y1(i)*s*h to x+x2(i)*s, y+y2(i)*s*h
next i
end sub
data 68// NumCharacters
data 40 // CharacterWidth
data 60 // CharacterHeight
data "A", 3
data -18, 00, 00,-40
data 00,-40, 18, 00
data -13,-11, 13,-11
data "B", 10
data -17, 00, -17,-40
data -17, 00, 07, 00
data -17,-20, 07,-20
data -17,-40, 07,-40
data 12,-35, 12,-25
data 12,-15, 12,-05
data 07,-40, 12,-35
data 07,-20, 12,-25
data 07,-20, 12,-15
data 07, 00, 12,-05
data "C", 7
data -15,-05, -15,-35
data -10, 00, 10, 00
data -10,-40, 10,-40
data -15,-35, -10,-40
data -15,-05, -10, 00
data 10,-40, 15,-35
data 10, 00, 15,-05
data "D", 6
data -15,-40, -15, 00
data -15,-40, 07,-40
data -15, 00, 07, 00
data 12,-35, 12,-05
data 07,-40, 12,-35
data 07, 00, 12,-05
data "E", 4
data -17, 00, -17,-40
data -17,-40, 15,-40
data -17, 00, 15, 00
data -17,-20, 12,-20
data "F", 3
data -17, 00, -17,-40
data -17,-40, 17,-40
data -17,-20, 10,-20
data "G", 10
data -17,-35, -17,-05
data -12,-40, 12,-40
data -12, 00, 12, 00
data 17,-05, 17,-20
data 17,-35, 17,-30
data 17,-20, 07,-20
data -17,-35, -12,-40
data -17,-05, -12, 00
data 12,-40, 17,-35
data 12, 00, 17,-05
data "H", 3
data -15, 00, -15,-40
data 15, 00, 15,-40
data -15,-20, 15,-20
data "I", 3
data 00, 00, 00,-40
data -10, 00, 10, 00
data -10,-40, 10,-40
data "J", 5
data 00,-40, 00,-05
data -10,-40, 10,-40
data -17,-05, -12, 00
data 00,-05, -05, 00
data -05, 00, -12, 00
data "K", 3
data -15, 00, -15,-40
data 15,-40, -15,-15
data 15, 00, -10,-18
data "L", 2
data -15, 00, -15,-40
data -15, 00, 10, 00
data "M", 4
data -17, 00, -17,-40
data 17, 00, 17,-40
data -17,-40, 00, 00
data 17,-40, 00, 00
data "N", 3
data -15, 00, -15,-40
data -15,-40, 15, 00
data 15, 00, 15,-40
data "O", 8
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data "P", 6
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data "Q", 9
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data 15, 00, 05,-10
data "R", 7
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data 17, 00, 05,-15
data "S", 11
data -12, 00, 12, 00
data -12,-20, 12,-20
data -12,-40, 12,-40
data -17,-25, -17,-35
data 17,-05, 17,-15
data -17,-35, -12,-40
data -17,-05, -12, 00
data 17,-35, 12,-40
data 17,-05, 12, 00
data -17,-25, -12,-20
data 17,-15, 12,-20
data "T", 2
data 00, 00, 00,-40
data -15,-40, 15,-40
data "U", 5
data -15,-40, -15,-05
data -15,-05, -10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-40
data "V", 2
data -17,-40, 00, 00
data 00, 00, 17,-40
data "W", 4
data -20,-40, -10, 00
data -10, 00, 00,-40
data 00,-40, 10, 00
data 10, 00, 20,-40
data "X", 2
data -15,-40, 15, 00
data -15, 00, 15,-40
data "Y", 3
data -15,-40, 00,-15
data 15,-40, 00,-15
data 00,-15, 00, 00
data "Z", 3
data -15,-40, 15,-40
data 15,-40, -15, 00
data -15, 00, 15, 00
data "?", 12
data -07,-40, 07,-40
data -07,-40,-12,-35
data 07,-40, 12,-35
data 12,-35, 12,-25
data 12,-25, 07,-20
data 07,-20, 05,-20
data 05,-20, 00,-15
data 00,-15, 00,-07
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data ".", 4
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data "!", 5
data 00,-07, 00,-40
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data "-", 1
data -07,-20, 07,-20
data "'", 6
data -01,-40, 01,-38
data -01,-38, 01,-40
data 00,-38, 00,-38
data -01,-39, 01,-39
data -01,-38,-02,-35
data -02,-35, 01,-38
data ",", 6
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00, 00
data -01,-01, 01,-01
data -01, 00,-02, 03
data -02, 03, 01, 00
data "1", 3
data 00, 00, 00,-40
data 00,-40,-05,-35
data -05, 00, 05, 00
data "2", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-22
data 15,-22, 10,-17
data 10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15, 00
data -15, 00, 15, 00
data "3",11
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-25
data 15,-25, 10,-20
data 10,-20, 15,-15
data 15,-15, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data 00,-20, 10,-20
data "4", 4
data 07, 00, 07,-40
data 07,-40,-15,-15
data -15,-15,-15,-10
data -15,-10, 17,-10
data "5", 8
data 15,-40,-15,-40
data -15,-40,-15,-22
data -15,-22, 10,-22
data 10,-22, 15,-17
data 15,-17, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "6",11
data 15,-35, 10,-40
data 10,-40,-10,-40
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-17
data 15,-17, 10,-22
data 10,-22,-10,-22
data -10,-22,-15,-15
data "7", 2
data -15,-40, 15,-40
data 15,-40,-02, 00
data "8",15
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-25
data 15,-25, 10,-20
data 10,-20, 15,-15
data 15,-15, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-15
data -15,-15,-10,-20
data -10,-20,-15,-25
data -15,-25,-15,-35
data -10,-20, 10,-20
data "9",11
data 15,-22,10,-17
data 10,-17,-10,-17
data -10,-17,-15,-22
data -15,-22,-15,-35
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "0", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-35
data -10,-40, 10, 00
data "a",12
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 20, 00
data 15,-12, 10,-17
data 10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "b", 10
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-20, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "c", 7
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "d",10
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 20, 00
data "e", 9
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-20
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-12
data 15,-12,-15,-12
data "f", 5
data 15,-35, 10,-40
data 10,-40, 00,-40
data 00,-40,-05,-35
data -05,-35,-05, 00
data -15,-20, 05,-20
data "g",11
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-20, 15, 10
data 15, 10, 10, 15
data 10, 15,-10, 15
data -10, 15,-15, 10
data "h", 6
data -10,-40,-15,-35
data -15,-35,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "i", 5
data 00, 00, 00,-25
data -01,-32, 01,-30
data -01,-30, 01,-32
data 00,-30, 00,-32
data -01,-31, 01,-31
data "j", 9
data 00, 00, 00,-25
data 00,-25, 00, 10
data 00, 10,-05, 15
data -05, 15,-10, 15
data -10, 15,-15, 10
data -01,-32, 01,-30
data -01,-30, 01,-32
data 00,-30, 00,-32
data -01,-31, 01,-31
data "k", 4
data -10,-40,-15,-35
data -15,-35,-15, 00
data 10,-25,-15,-10
data 10, 00,-08,-14
data "l", 2
data 00,-40,-05,-35
data -05,-35,-05, 00
data "m", 9
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25,-05,-25
data -05,-25, 00,-20
data 00,-20, 00, 00
data 00,-20, 05,-25
data 05,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "n",5
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "o", 8
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-20
data "p", 8
data -15,-25,-15, 20
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "q", 8
data 15,-25, 15, 20
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "r", 4
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data "s",11
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-18
data -15,-18,-10,-13
data -10,-13, 10,-13
data 10,-13, 15,-10
data 15,-10, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "t", 3
data -05,-40,-05,-05
data -05,-05, 00, 00
data -10,-25, 05,-25
data "u", 5
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15, 00, 15,-25
data "v", 2
data -13,-25, 00, 00
data 00, 00, 13,-25
data "w", 4
data -15,-25,-08, 00
data -08, 00, 00,-25
data 00,-25, 08, 00
data 08, 00, 15,-25
data "x", 2
data -10,-25, 10, 00
data -10, 00, 10,-25
data "y", 8
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-25, 15, 10
data 15, 10, 10, 15
data 10, 15,-10, 15
data -10, 15,-15, 10
data "z", 3
data -13,-25, 13,-25
data 13,-25,-13, 00
data -13, 00, 13, 00
Next , the sine wave thingy.
-
Looks cool!
It will look good sined :)
-
Real nice, its great that you added in the lowercase characters.
-
Thanks. That was fun.
I also did this.
data "^",28
data -04,-35, 04,-35
data 04,-35, 11,-31
data 11,-31, 15,-24
data 15,-24, 15,-16
data 15,-16, 11,-09
data 11,-09, 04,-05
data 04,-05,-04,-05
data -04,-05,-11,-09
data -11,-09,-15,-16
data -15,-16,-15,-24
data -15,-24,-11,-31
data -11,-31,-04,-35
data -06,-26,-04,-26
data -07,-25,-03,-25
data -08,-24,-02,-24
data -08,-23,-02,-23
data -07,-22,-03,-22
data -06,-21,-04,-21
data 04,-26, 06,-26
data 03,-25, 07,-25
data 02,-24, 08,-24
data 02,-23, 08,-23
data 03,-22, 07,-22
data 04,-21, 06,-21
data -09,-17,-06,-14
data -06,-14, 00,-12
data 00,-12, 06,-14
data 06,-14, 09,-17
It makes a smiley face.
I tried "smiley" instead of "^" and the 's' was replaced with the characters of 'smiley'.
Is it possible to have the characters disappear?
-
I tried "smiley" instead of "^" and the 's' was replaced with the characters of 'smiley'.
Is it possible to have the characters disappear?
I'm not sure whether you mean disappear from the screen or disappear from memory. If you mean from memory then the answer is yes and no. The drawing lines can become inaccessible. But they remain in memory.
dim x1(1), y1(1), x2(1), y2(1) // array of line drawing co-ordinates
^The four arrays that hold the drawing line co-ordinates. The co-ordinates for all drawing lines are kept together in a single array. These arrays are grown to accomodate new lines as we find them. There's a variable "TotalLines" that keeps a running count of all drawing lines defined so far. TotalLines is used to resize these arrays just before reading the values of the co-ordinates into the newly added array elements...
redim x1(TotalLines), y1(TotalLines)
redim x2(TotalLines), y2(TotalLines)
read x1(TotalLines), y1(TotalLines)
read x2(TotalLines), y2(TotalLines)
TotalLines = TotalLines + 1
We access these co-ordinates be taking note of the value of TotalLines before we grow the array. The value of TotalLines becomes the current index so we know exactly where our new lines will be stored:
read Ascii$ // the character to use
read NumLines // the number of lines to draw
Ascii = asc(mid$(Ascii$, 1, 1))
Start(Ascii) = TotalLines
Count(Ascii) = NumLines
Here we use the string character as an index to store the current value of TotalLines and the number of drawing lines used for the string character. If you reassign new values to a string character the co-ordinates that were previously assigned to that character will become inaccessible. The old co-ordinates remain in memory.
-
Sorry. I guess I meant, I wanted to activate my smiley with the word 'smiley'
and have just the smiley face come up.
Instead of the smiley face and the letters 'miley' come up after it.
-
The ascii character 1 is a clear smiley ascii character 2 is a filled smiley. Change the first line of the smiley character data to this
data 1, 28 // was "^" now its asc(smiley)
To use this character you need to embed the smiley character in the string
a$ = "The quick brown fox " + chr$(1) + " jumps over the lazy dog"
-
And now, 'SINED'.
a$="^^THE^QUICK^BROWN^FOX^JUMPS^OVER^THE^LAZY^DOG"
a$=a$+"^^the^quick^brown^fox^jumps^over^the^lazy^dog^^"
LoadFont()
s=.45
h=2.5
w=0
m=640
ang=pi/180
open window 640,512
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
c=peek("port1")
if c=16 s=s+.01
if c=64 s=s-.01
if c=128 w=w-.01
if c=32 w=w+.01
if w<0 w=0
x=40*s
for a=1 to len(a$)
if x+m+(CharacterWidth*s)>50 and x+m+(CharacterWidth*s)<640 then
PrintCharacter(mid$(a$,a,1), x+m, y,s)
endif
if m<-(len(a$)*40*s) m=640
x=x+(CharacterWidth*s)
next a
m=m-1
until (1=0)
sub LoadFont()
MAX_CHARACTERS = 256
dim Start(MAX_CHARACTERS) // holds first line number to index
dim Count(MAX_CHARACTERS) // holds the number of lines to draw
dim x1(1), y1(1), x2(1), y2(1) // array of lines
read NumCharacters
read CharacterWidth
read CharacterHeight
TotalLines = 1
for ch = 1 to NumCharacters
read Ascii$ // the character to use
read NumLines // the number of lines to draw
Ascii = asc(Ascii$)
Start(Ascii) = TotalLines
Count(Ascii) = NumLines
for l = 1 to NumLines
redim x1(TotalLines), y1(TotalLines)
redim x2(TotalLines), y2(TotalLines)
read x1(TotalLines), y1(TotalLines)
read x2(TotalLines), y2(TotalLines)
TotalLines = TotalLines + 1
next l
next ch
end sub
sub PrintCharacter(char$, x, y, s)
ch = asc(mid$(char$,1,1))
for i=Start(ch) to Start(ch)+Count(ch)-1
z=(y1(i)-y)*w
z1=(y2(i)-y)*w
y=sin((x+m)*ang)*200*s+300 rem or y=sin((x+m)*ang*2)*200*s+300 to double the wave
line x+x1(i)*s-z, y+y1(i)*s*h to x+x2(i)*s-z1, y+y2(i)*s*h
next i
end sub
data 69// NumCharacters
data 40 // CharacterWidth
data 60 // CharacterHeight
data "A", 3
data -18, 00, 00,-40
data 00,-40, 18, 00
data -13,-11, 13,-11
data "B", 10
data -17, 00, -17,-40
data -17, 00, 07, 00
data -17,-20, 07,-20
data -17,-40, 07,-40
data 12,-35, 12,-25
data 12,-15, 12,-05
data 07,-40, 12,-35
data 07,-20, 12,-25
data 07,-20, 12,-15
data 07, 00, 12,-05
data "C", 7
data -15,-05, -15,-35
data -10, 00, 10, 00
data -10,-40, 10,-40
data -15,-35, -10,-40
data -15,-05, -10, 00
data 10,-40, 15,-35
data 10, 00, 15,-05
data "D", 6
data -15,-40, -15, 00
data -15,-40, 07,-40
data -15, 00, 07, 00
data 12,-35, 12,-05
data 07,-40, 12,-35
data 07, 00, 12,-05
data "E", 4
data -17, 00, -17,-40
data -17,-40, 15,-40
data -17, 00, 15, 00
data -17,-20, 12,-20
data "F", 3
data -17, 00, -17,-40
data -17,-40, 17,-40
data -17,-20, 10,-20
data "G", 10
data -17,-35, -17,-05
data -12,-40, 12,-40
data -12, 00, 12, 00
data 17,-05, 17,-20
data 17,-35, 17,-30
data 17,-20, 07,-20
data -17,-35, -12,-40
data -17,-05, -12, 00
data 12,-40, 17,-35
data 12, 00, 17,-05
data "H", 3
data -15, 00, -15,-40
data 15, 00, 15,-40
data -15,-20, 15,-20
data "I", 3
data 00, 00, 00,-40
data -10, 00, 10, 00
data -10,-40, 10,-40
data "J", 5
data 00,-40, 00,-05
data -10,-40, 10,-40
data -17,-05, -12, 00
data 00,-05, -05, 00
data -05, 00, -12, 00
data "K", 3
data -15, 00, -15,-40
data 15,-40, -15,-15
data 15, 00, -10,-18
data "L", 2
data -15, 00, -15,-40
data -15, 00, 10, 00
data "M", 4
data -17, 00, -17,-40
data 17, 00, 17,-40
data -17,-40, 00, 00
data 17,-40, 00, 00
data "N", 3
data -15, 00, -15,-40
data -15,-40, 15, 00
data 15, 00, 15,-40
data "O", 8
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data "P", 6
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data "Q", 9
data -15,-05, -15,-35
data 15,-05, 15,-35
data -10,-40, 10,-40
data -10, 00, 10, 00
data -15,-35, -10,-40
data -15,-05, -10, 00
data 15,-35, 10,-40
data 15,-05, 10, 00
data 15, 00, 05,-10
data "R", 7
data -17, 00, -17,-40
data -17,-40, 10,-40
data -17,-15, 10,-15
data 15,-35, 15,-20
data 10,-40, 15,-35
data 10,-15, 15,-20
data 17, 00, 05,-15
data "S", 11
data -12, 00, 12, 00
data -12,-20, 12,-20
data -12,-40, 12,-40
data -17,-25, -17,-35
data 17,-05, 17,-15
data -17,-35, -12,-40
data -17,-05, -12, 00
data 17,-35, 12,-40
data 17,-05, 12, 00
data -17,-25, -12,-20
data 17,-15, 12,-20
data "T", 2
data 00, 00, 00,-40
data -15,-40, 15,-40
data "U", 5
data -15,-05, -15,-40
data -15,-05, -10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-40
data "V", 2
data -17,-40, 00, 00
data 00, 00, 17,-40
data "W", 4
data -20,-40, -10, 00
data -10, 00, 00,-40
data 00,-40, 10, 00
data 10, 00, 20,-40
data "X", 2
data -15,-40, 15, 00
data -15, 00, 15,-40
data "Y", 3
data -15,-40, 00,-15
data 15,-40, 00,-15
data 00,-15, 00, 00
data "Z", 3
data -15,-40, 15,-40
data 15,-40, -15, 00
data -15, 00, 15, 00
data "?", 12
data -07,-40, 07,-40
data -07,-40,-12,-35
data 07,-40, 12,-35
data 12,-35, 12,-25
data 12,-25, 07,-20
data 07,-20, 05,-20
data 05,-20, 00,-15
data 00,-15, 00,-07
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data ".", 4
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data "!", 5
data 00,-07, 00,-40
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00,-02
data -01,-01, 01,-01
data "-", 1
data -07,-20, 07,-20
data "'", 6
data -01,-40, 01,-38
data -01,-38, 01,-40
data 00,-38, 00,-38
data -01,-39, 01,-39
data -01,-38,-02,-35
data -02,-35, 01,-38
data ",", 6
data -01,-02, 01, 00
data -01, 00, 01,-02
data 00, 00, 00, 00
data -01,-01, 01,-01
data -01, 00,-02, 03
data -02, 03, 01, 00
data "1", 3
data 00, 00, 00,-40
data 00,-40,-05,-35
data -05, 00, 05, 00
data "2", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-22
data 15,-22, 10,-17
data 10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15, 00
data -15, 00, 15, 00
data "3",11
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-25
data 15,-25, 10,-20
data 10,-20, 15,-15
data 15,-15, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data 00,-20, 10,-20
data "4", 4
data 07, 00, 07,-40
data 07,-40,-15,-15
data -15,-15,-15,-10
data -15,-10, 17,-10
data "5", 8
data 15,-40,-15,-40
data -15,-40,-15,-22
data -15,-22, 10,-22
data 10,-22, 15,-17
data 15,-17, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "6",11
data 15,-35, 10,-40
data 10,-40,-10,-40
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-17
data 15,-17, 10,-22
data 10,-22,-10,-22
data -10,-22,-15,-15
data "7", 2
data -15,-40, 15,-40
data 15,-40,-02, 00
data "8",15
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-25
data 15,-25, 10,-20
data 10,-20, 15,-15
data 15,-15, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-15
data -15,-15,-10,-20
data -10,-20,-15,-25
data -15,-25,-15,-35
data -10,-20, 10,-20
data "9",11
data 15,-22,10,-17
data 10,-17,-10,-17
data -10,-17,-15,-22
data -15,-22,-15,-35
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "0", 9
data -15,-35,-10,-40
data -10,-40, 10,-40
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-35
data -10,-40, 10, 00
data "a",12
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 20, 00
data 15,-12, 10,-17
data 10,-17,-10,-17
data -10,-17,-15,-12
data -15,-12,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "b", 10
data -10,-40,-15,-35
data -15,-35,-15,-05
data -15,-05,-20, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "c", 7
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "d",10
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 10,-40, 15,-35
data 15,-35, 15,-05
data 15,-05, 20, 00
data "e", 9
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data -15,-05,-15,-20
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-12
data 15,-12,-15,-12
data "f", 5
data 15,-35, 10,-40
data 10,-40, 00,-40
data 00,-40,-05,-35
data -05,-35,-05, 00
data -15,-20, 05,-20
data "g",11
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-20, 15, 10
data 15, 10, 10, 15
data 10, 15,-10, 15
data -10, 15,-15, 10
data "h", 6
data -10,-40,-15,-35
data -15,-35,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "i", 5
data 00, 00, 00,-25
data -01,-32, 01,-30
data -01,-30, 01,-32
data 00,-30, 00,-32
data -01,-31, 01,-31
data "j", 9
data 00, 00, 00,-25
data 00,-25, 00, 10
data 00, 10,-05, 15
data -05, 15,-10, 15
data -10, 15,-15, 10
data -01,-32, 01,-30
data -01,-30, 01,-32
data 00,-30, 00,-32
data -01,-31, 01,-31
data "k", 4
data -10,-40,-15,-35
data -15,-35,-15, 00
data 10,-25,-15,-10
data 10, 00,-08,-14
data "l", 2
data 00,-40,-05,-35
data -05,-35,-05, 00
data "m", 9
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25,-05,-25
data -05,-25, 00,-20
data 00,-20, 00, 00
data 00,-20, 05,-25
data 05,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "n",5
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15, 00
data "o", 8
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-05, 15,-20
data "p", 8
data -15,-25,-15, 20
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data 15,-20, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "q", 8
data 15,-25, 15, 20
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data "r", 4
data -15,-25,-15, 00
data -15,-20,-10,-25
data -10,-25, 10,-25
data 10,-25, 15,-20
data "s",11
data 15,-20, 10,-25
data 10,-25,-10,-25
data -10,-25,-15,-20
data -15,-20,-15,-18
data -15,-18,-10,-13
data -10,-13, 10,-13
data 10,-13, 15,-10
data 15,-10, 15,-05
data 15,-05, 10, 00
data 10, 00,-10, 00
data -10, 00,-15,-05
data "t", 3
data -05,-40,-05,-05
data -05,-05, 00, 00
data -10,-25, 05,-25
data "u", 5
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15, 00, 15,-25
data "v", 2
data -13,-25, 00, 00
data 00, 00, 13,-25
data "w", 4
data -15,-25,-08, 00
data -08, 00, 00,-25
data 00,-25, 08, 00
data 08, 00, 15,-25
data "x", 2
data -10,-25, 10, 00
data -10, 00, 10,-25
data "y", 8
data -15,-25,-15,-05
data -15,-05,-10, 00
data -10, 00, 10, 00
data 10, 00, 15,-05
data 15,-25, 15, 10
data 15, 10, 10, 15
data 10, 15,-10, 15
data -10, 15,-15, 10
data "z", 3
data -13,-25, 13,-25
data 13,-25,-13, 00
data -13, 00, 13, 00
data "^",28
data -04,-35, 04,-35
data 04,-35, 11,-31
data 11,-31, 15,-24
data 15,-24, 15,-16
data 15,-16, 11,-09
data 11,-09, 04,-05
data 04,-05,-04,-05
data -04,-05,-11,-09
data -11,-09,-15,-16
data -15,-16,-15,-24
data -15,-24,-11,-31
data -11,-31,-04,-35
data -06,-26,-04,-26
data -07,-25,-03,-25
data -08,-24,-02,-24
data -08,-23,-02,-23
data -07,-22,-03,-22
data -06,-21,-04,-21
data 04,-26, 06,-26
data 03,-25, 07,-25
data 02,-24, 08,-24
data 02,-23, 08,-23
data 03,-22, 07,-22
data 04,-21, 06,-21
data -09,-17,-06,-14
data -06,-14, 00,-12
data 00,-12, 06,-14
data 06,-14, 09,-17
-
How cool is that! :)
Well done.
-
Thanks, everyone. That's other Yabasic combination ticked off.
-
Sweet, now it looks awesome