01-25-2023, 03:58 AM
(01-25-2023, 03:38 AM)PhilOfPerth Wrote: The graphic version seems to be a problem for some users - maybe their screen resolution?
If you did your program in "text mode" you would notice better what is happening. That is, if the "DRAW" statement were turned into another "PRINT" which creates a vertical cursor.
One character overwrites the other and anything else that is in the way. In graphics modes as well as in text. It was that way in QuickBASIC/QBasic with nothing to do about it except draw only the pixels of the characters laboriously. QB64 has _PRINTMODE but it's some hassle. It's better to print the character first, then draw the vertical cursor with "DRAW" in your program in the other thread. Otherwise you would have to erase the whole field where the characters are printed, because only pixels would be drawn of the characters which causes the characters to overwrite each other and it could get messy quickly.
Code: (Select All)
SCREEN 12
_PRINTMODE _KEEPBACKGROUND
LOCATE 1, 1 : PRINT "O"
LOCATE 1, 1 : PRINT "A"
Without the _PRINTMODE then this program would just print an "A" at top-left corner of the window. Instead it prints this mutated thing. Using the pipe symbol or a fuzzy block isn't going to help in that case.
What you could do is just print a "cursor", which is a pipe or whatever is not a letter, on the place where the player expects to insert a new letter in the game. Instead of using "DRAW" between characters. Like "BYS|T" as opposed to "BY|ST". Just print the "cursor" along with the rest of the text.