Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Is there a square monospace font
#1
I'm looking for a font that's monospace, and occupies the same horizontal as vertical space.
for example:
FOX
FOX
FOX
will ocucupy a square space on screen.
All the Wide fonts I've found still take extra vertical space.
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, W.A.) Big Grin
Please visit my Website at: http://oldendayskids.blogspot.com/
Reply
#2
_FONT 8
Reply
#3
_Font 8. Better known as SCREEN 0's fat ASCII characters.

Hey is it just me, or did something go haywire and caused the forum icon buttons, for post formatting, to go blank?

Pete
Reply
#4
Let me expand on Steve's amazing reply:

Code: (Select All)
Screen _NewImage(600, 600, 32)
For i = 1 To 3
    Text8 120, i * 120, 120, &HFFFF8844, "FOX"
Next
Print "OK?"
Sleep

Sub Text8 (x, y, textHeight, K As _Unsigned Long, txt$)
    Dim fg As _Unsigned Long, cur&, I&, multi, xlen
    fg = _DefaultColor
    f = _Font
    'screen snapshot
    cur& = _Dest
    I& = _NewImage(8 * Len(txt$), 8, 32)
    _Dest I&
    _Font 8
    Color K, _RGBA32(0, 0, 0, 0)
    _PrintString (0, 0), txt$
    multi = textHeight / 8
    xlen = Len(txt$) * 8 * multi
    _PutImage (x, y)-Step(xlen, textHeight), I&, cur&
    Color fg
    _FreeImage I&
    _Dest cur&
    _Font f
End Sub

(10-31-2024, 11:48 PM)Pete Wrote: _Font 8. Better known as SCREEN 0's fat ASCII characters.

Hey is it just me, or did something go haywire and caused the forum icon buttons, for post formatting, to go blank?

Pete

Maybe my reply collided with your reply Wink
b = b + ...
Reply
#5
(10-31-2024, 11:34 PM)SMcNeill Wrote: _FONT 8

Thanks Steve. and Bplus. Steve's suggestion does what I wanted. But can I create larger characters? I tried changing the _Font number, which, obviously, can't work.
Bplus, sorrry if i'm sounding dense, but can the essence of your Sub be put at top of the code, to declare the size font I need for the rest of the page? The sub works fine, but I don't want to call the sub every time I Print a piece of text.
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, W.A.) Big Grin
Please visit my Website at: http://oldendayskids.blogspot.com/
Reply
#6
@PhilOfPerth unlike with Fonts you can make the text any size you want when you call Text8

Sub Text8 (x, y, textHeight, K As _Unsigned Long, txt$)

This substitutes for a _Print String(x, y), txt$ only it does more!

You can say whatever size you want with textHeight and you can specify whatever color you want.

x, y is top left corner of the text put onto screen at the color and height you specify for txt$

If you want to say make every line a height of 20 then y = 20 * row, and use something less than 20 like 18 or 16 for text height so letters aren't sitting right on top of one another. Like the 3 FOX example.

Code: (Select All)
Screen _NewImage(600, 600, 32)
For i = 0 To 29
    Text8 20, i * 20, 18, &HFF00FF88, "This is line" + Str$(i)
Next
Sleep

Sub Text8 (x, y, textHeight, K As _Unsigned Long, txt$)
    Dim fg As _Unsigned Long, cur&, I&, multi, xlen
    fg = _DefaultColor
    f = _Font
    'screen snapshot
    cur& = _Dest
    I& = _NewImage(8 * Len(txt$), 8, 32)
    _Dest I&
    _Font 8
    Color K, _RGBA32(0, 0, 0, 0)
    _PrintString (0, 0), txt$
    multi = textHeight / 8
    xlen = Len(txt$) * 8 * multi
    _PutImage (x, y)-Step(xlen, textHeight), I&, cur&
    Color fg
    _FreeImage I&
    _Dest cur&
    _Font f
End Sub

Update: Actually you can make the above example text height at 20! There is still a tiny little space between each row. I just checked.
b = b + ...
Reply
#7
Here is cool example you can't do easily with a Font!
Code: (Select All)
Screen _NewImage(1000, 600, 32)
size = 64
For i = 0 To 20
    Text8 20, row, size, &HFF00FF88, "This is line" + Str$(i)
    row = row + size + 1
    size = size * .9
Next
Sleep

Sub Text8 (x, y, textHeight, K As _Unsigned Long, txt$)
    Dim fg As _Unsigned Long, cur&, I&, multi, xlen
    fg = _DefaultColor
    f = _Font
    'screen snapshot
    cur& = _Dest
    I& = _NewImage(8 * Len(txt$), 8, 32)
    _Dest I&
    _Font 8
    Color K, _RGBA32(0, 0, 0, 0)
    _PrintString (0, 0), txt$
    multi = textHeight / 8
    xlen = Len(txt$) * 8 * multi
    _PutImage (x, y)-Step(xlen, textHeight), I&, cur&
    Color fg
    _FreeImage I&
    _Dest cur&
    _Font f
End Sub
b = b + ...
Reply
#8
(11-01-2024, 12:42 AM)PhilOfPerth Wrote:
(10-31-2024, 11:34 PM)SMcNeill Wrote: _FONT 8

Steve's suggestion does what I wanted. But can I create larger characters?

Try this simple little SquarePrint routine: https://qb64phoenix.com/forum/showthread.php?tid=3183
Reply
#9
Thanks Steve. That's a very versatile print formating routine. I like how it lets me place text at pixel-position. I'll have a play with that and see if I can apply it in my prog..
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, W.A.) Big Grin
Please visit my Website at: http://oldendayskids.blogspot.com/
Reply




Users browsing this thread: 3 Guest(s)