Posts: 721
Threads: 112
Joined: Apr 2022
Reputation:
28
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.
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, Western Australia.) 
Please visit my Website at: http://oldendayskids.blogspot.com/
Posts: 4,145
Threads: 191
Joined: Apr 2022
Reputation:
263
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: 4,145
Threads: 191
Joined: Apr 2022
Reputation:
263
the only good reason to use screen 0 is for screen function
b = b + ...
Posts: 721
Threads: 112
Joined: Apr 2022
Reputation:
28
(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?
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, Western Australia.) 
Please visit my Website at: http://oldendayskids.blogspot.com/
Posts: 4,145
Threads: 191
Joined: Apr 2022
Reputation:
263
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,989
Threads: 352
Joined: Apr 2022
Reputation:
284
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: 4,145
Threads: 191
Joined: Apr 2022
Reputation:
263
Posts: 2,557
Threads: 263
Joined: Apr 2022
Reputation:
141
I'm jus gladd to sea peeple who dont usze SCREEN 0 our FOCKED.
Peat
Posts: 4,145
Threads: 191
Joined: Apr 2022
Reputation:
263
hey what happened to the points?
b = b + ...
Posts: 2,557
Threads: 263
Joined: Apr 2022
Reputation:
141
Just Steve messing with us.
Shoot first and shoot people who ask questions, later.
|