Posts: 652
Threads: 96
Joined: Apr 2022
Reputation:
22
Can the Screen(row,column) function be used to find the character at a screen location after using _newImage and setting a font?
When I try to run these few lines, I don't get the results I expect:
Code: (Select All) WWidth = 1120: WHeight = 820: Mode = 32: Size = 24
Screen _NewImage(WWidth, WHeight, Mode)
SetFont: f& = _LoadFont("C:\WINDOWS\fonts\courbd.ttf", Size, "monospace"): _Font f&
Locate 15, 40: Print "X"
p% = Screen(15, 40)
Print "screen(15,40) is"; p%: Sleep
' with lines 3 and 4 both in, an Illegal Function message is shown.
' with line 3 in, and line 4 out, the char number is reported as 219.
' with line 4 in and line 3 out, the expected code (88) is shown.
Posts: 3,980
Threads: 177
Joined: Apr 2022
Reputation:
220
04-05-2024, 11:08 AM
(This post was last modified: 04-05-2024, 11:12 AM by bplus.)
maybe if you use mode = 0 not mode 32
hey it's 7;07 am what are you doing up so early ? lol
yeah ok change wwidth and hheight to screen 0 columns and rows
Code: (Select All) 'WWidth = 1120: WHeight = 820:
Mode = 0: Size = 24
Screen _NewImage(80, 30, Mode)
SetFont: f& = _LoadFont("C:\WINDOWS\fonts\courbd.ttf", Size, "monospace"): _Font f&
Locate 15, 40: Print "X"
p% = Screen(15, 40)
Print "screen(15,40) is"; p%: Sleep
' with lines 3 and 4 both in, an Illegal Function message is shown.
' with line 3 in, and line 4 out, the char number is reported as 219.
' with line 4 in and line 3 out, the expected code (88) is shown.
must be the banner inspiring this crap! lol
b = b + ...
Posts: 3,980
Threads: 177
Joined: Apr 2022
Reputation:
220
the only good reason to use screen 0 is for screen function
b = b + ...
Posts: 652
Threads: 96
Joined: Apr 2022
Reputation:
22
(04-05-2024, 11:13 AM)bplus Wrote: the only good reason to use screen 0 is for screen function
Thanks bplus. Screen 0 works for this example. But I need text and graphics, and this mode doesn't provide the features I need.
I want to use thiis font, and this screen size, and a set number of chars per line.. Then I need to look at a screen row and see
what character is at position P of that row.
I think maybe the simplest way is to map the row, call it RefRow$(), then when chars are printed on it, place the char in this array.
Code: (Select All) WWidth = 1120: WHeight = 820: Mode = 32: Size = 24
Screen _NewImage(WWidth, WHeight, Mode)
SetFont: f& = _LoadFont("C:\WINDOWS\fonts\courbd.ttf", Size, "monospace"): _Font f&
lhs = (_DesktopWidth - WWidth) / 2
_ScreenMove lhs, 86 ' centre display on screen
CPL = WWidth / _PrintWidth("X")
Print "cpl is"; CPL
Ref = 15: p = 40
Dim RefRow$(80): Locate Ref, p: Print "X": RefRow$(p) = "X"
Print RefRow$(40)
A bit simplistic, but it works ok. What do you think?
Posts: 3,980
Threads: 177
Joined: Apr 2022
Reputation:
220
04-06-2024, 12:25 AM
(This post was last modified: 04-06-2024, 12:27 AM by bplus.)
+1 yep exactly what I would do!
I'd go a step further and make a function that saves the text in an array and prints to screen.
b = b + ...
Posts: 2,700
Threads: 327
Joined: Apr 2022
Reputation:
217
I'd just dual print to 2 different screens, and keep the SCREEN 0 screen hidden so I could read back from it at any time, without the user knowing.
Posts: 3,980
Threads: 177
Joined: Apr 2022
Reputation:
220
Posts: 2,180
Threads: 222
Joined: Apr 2022
Reputation:
104
I'm jus gladd to sea peeple who dont usze SCREEN 0 our FOCKED.
Peat
Posts: 3,980
Threads: 177
Joined: Apr 2022
Reputation:
220
hey what happened to the points?
b = b + ...
Posts: 2,180
Threads: 222
Joined: Apr 2022
Reputation:
104
Just Steve messing with us.
Shoot first and shoot people who ask questions, later.
|